2017-06-27 11 views
0

J'utilise les cookies sur une page php j'ai développé comme suit:Comment définir un cookie par utilisateur en php?

setcookie("ThisCookie[to]", $toValue, time() + (10 * 365 * 24 * 60 * 60), "/"); 

Si je détecte le cookie est défini, je récupère les valeurs:

 foreach ($_COOKIE["ThisCookie"] as $name => $value) { 
     if ($name == "to") 
     { 
      $cookie_to = $value; 


     } 

Cela fonctionne très bien à premier coup d'oeil, cependant peu importe quelle machine je visite la page de, je reçois les mêmes valeurs retournées par le cookie. Par exemple, sur mon ordinateur de bureau, j'entre une valeur de "ABC" et cela est stocké pour ce cookie. Je vois "ABC" retourné si je visite le site à partir d'un ordinateur différent, ou même mon téléphone. Est-ce que je ne comprends pas très bien le fonctionnement des cookies? Je pensais qu'ils étaient stockés sur la machine locale par utilisateur et non communs à tous les utilisateurs. Pourquoi la même valeur est renvoyée par le cookie, quelle que soit la machine sur laquelle je consulte la page?

Merci.

Répondre

1

Vous avez tout faux ... garçon

Les cookies sont de l'utilisateur et sont stockés sur la machine de l'utilisateur. Lorsque vous traitez la variable $_COOKIE en php, vous traitez le cookie d'un utilisateur spécifique (celui qui a fait la demande) qui a été transmis dans l'en-tête.

Pour le serveur En savoir plus sur $_SESSIONhttp://php.net/manual/en/reserved.variables.session.php

+0

Vous dites que je ne devriez pas voir le comportement que je vois et chaque machine doit être en mesure d'avoir sa propre valeur pour le cookie? – AS2012

+0

Il fait ... la clé est 'ThisCookie' et la valeur est ce que vous définissez ... de sorte que chaque machine retourne ce que vous avez défini. – EvgenyKolyakov