Bonjour,
Voilà ça fait plusieurs heures que je tourne en rond au sujet de la gestion de cookies auto-générés par la fonction setcookie afin de permettre aux utilisateurs de mon site de rester connecté même après avoir fermé le navigateur. (jusque là tout va bien...quoique...)
Le fait est que juste après avoir utilisé cette fonction (dans une page vierge de html), les cookies apparaissent comme étants présents quand je les interroge via $_COOKIE['mavariable'], mais quand je redirige l'utilisateur sur cete meme page via la page index de mon site, en interrogeant la même variable il apparait qu'elle n'existe plus...
Pourquoi... T_T
Sachant que j'ai fais quelques test précédement et que tout marchait bien avant que je couple les cookies aux sessions afin d'automatiser la tâche...
Voici les script (un peu nettoyés pour être lisibles):
Le formulaire :
Le traitement :
Au dessus de la balise <html> de mon header.php :
Ici la variable $_COOKIE['numero'] ne s'affiche pas... et si quelqu'un pouvait me dire pourquoi ca m'arrangerais T_T
Je précise que j'ai pas mal cherché, que j'ai essayé d'eviter tous les pièges liés aux headers, que mon ami google m'a fait sauté plusieurs erreur, mais que j'ai fini par sécher à ce niveau...
Voilà merci d'avance
Modifié par Shin (18 Feb 2009 - 19:57)
Voilà ça fait plusieurs heures que je tourne en rond au sujet de la gestion de cookies auto-générés par la fonction setcookie afin de permettre aux utilisateurs de mon site de rester connecté même après avoir fermé le navigateur. (jusque là tout va bien...quoique...)
Le fait est que juste après avoir utilisé cette fonction (dans une page vierge de html), les cookies apparaissent comme étants présents quand je les interroge via $_COOKIE['mavariable'], mais quand je redirige l'utilisateur sur cete meme page via la page index de mon site, en interrogeant la même variable il apparait qu'elle n'existe plus...
Pourquoi... T_T
Sachant que j'ai fais quelques test précédement et que tout marchait bien avant que je couple les cookies aux sessions afin d'automatiser la tâche...
Voici les script (un peu nettoyés pour être lisibles):
Le formulaire :
<?php
if(!isset($_SESSION['numero'])){
?>
<form name="" action="pages/traitlogin.php" method="post" />
<table>
<tr>
<td >E-mail:</td>
<td><input class="text" type="text" name="login" /> </td>
</tr>
<tr>
<td >Mot de passe : </td>
<td><input class="text" type="password" name="password" /></td>
</tr>
<tr>
<td></td>
<td colspan="1"align="center">Se souvenir de moi <input type="checkbox" name="souvenir" value="1"/></td>
</tr>
</table>
</form>
<?php } ?>
Le traitement :
<?php
session_start();
require_once "config.php";
if(sizeof($_POST)>0){
//
//verifications d'usage sur les champs
//
if (isset($_POST['souvenir']) && isset($_SESSION['numero']))
{
$expire = time() + 365*24*3600;
setcookie('numero', $_SESSION['numero'], $expire);
setcookie('genre', $_SESSION['genre'], $expire);
setcookie('nom', $_SESSION['nom'], $expire);
echo $_COOKIE['numero'];
echo $_COOKIE['genre'];
echo $_COOKIE['nom'];
echo '<a href="../accueil.php">redirection accueil</a>';
}
}?>
Au dessus de la balise <html> de mon header.php :
<?php
session_start();
echo $_SESSION['numero'].' - '.$_COOKIE['numero'];
include('config.php');
if (isset ($_COOKIE['numero']) && !isset ($_SESSION['numero']))
{
$_SESSION['numero'] = $_COOKIE['numero'];
$_SESSION['genre'] = $_COOKIE['genre'];
$_SESSION['nom'] = $_COOKIE['nom'];
}
?>
Ici la variable $_COOKIE['numero'] ne s'affiche pas... et si quelqu'un pouvait me dire pourquoi ca m'arrangerais T_T
Je précise que j'ai pas mal cherché, que j'ai essayé d'eviter tous les pièges liés aux headers, que mon ami google m'a fait sauté plusieurs erreur, mais que j'ai fini par sécher à ce niveau...
Voilà merci d'avance
Modifié par Shin (18 Feb 2009 - 19:57)