2009-03-26 9 views
0

je me connecte dans mon système et définir un cookie ainsi:session ne présente lors du redémarrage de navigateur

setcookie("hello",true,time()+3600); 

Je regarde dans le gestionnaire de cookies de Firefox et de voir que mon cookie.

Lorsque je redémarre mon navigateur et redémarrer que je vois dans le gestionnaire de cookies que le cookie est ther mais ce code:

if(isset($_COOKIE['hello'])){ 

      echo "yes"; exit;} 

Je ne vois rien, il me redirige vers le formulaire de connexion. Est-ce que quelqu'un sait ce qui se passe?

Répondre

3

Quelques choses à essayer:

  1. Explicity définir l'attribut path de setcookie à / pour que les biscuits sont disponibles dans l'ensemble du domaine.
  2. Au lieu de vérifier isset, essayez de faire un print_r de $_COOKIE dans un fichier PHP autrement vide. La partie value de setcookie attend une chaîne et non un booléen. J'imagine que c'est maintenant hello est mis à 1, même si cela ne serait pas vraiment important si elle survit à un redémarrage ou pas seulement pensé que je le ferais remarquer.
  3. Avez-vous configuré votre navigateur pour supprimer les cookies à la sortie? Dans Firefox, par exemple, vous pouvez aller à Outils -> Options -> Confidentialité et il y a une option qui dit "Toujours effacer mes données privées lorsque je quitte Firefox." Si vous avez cet ensemble, les cookies que vous avez seront supprimés lorsque vous fermez votre navigateur.
  4. Avez-vous vérifié l'accès au cookie de PHP avant au redémarrage? Vous dites que vous pouvez le voir dans Cookie Manager avant et après, mais pouvez-vous le voir en PHP avant ou après?
3

Alors qu'un cookie standard, comme votre cookie «bonjour», survivra au redémarrage d'un navigateur, ce n'est pas le cas d'un cookie de session.

Il semble que vous utilisiez un cookie de session pour votre connexion. Lorsque vous cliquez sur la page après un redémarrage, vous devez vous reconnecter.