2011-11-30 3 views
0

J'ai le problème le plus étrange avec les cookies. J'ai écrit un script PHP qui utilise des jetons pour identifier le visiteur afin que "il/elle" puisse utiliser le site correctement.Bluehost (ou PHP Script) Problème avec les cookies

Le système Token fonctionne parfaitement sur la machine de développement local (windoze + ZendApache) et ne fonctionne pas sur le serveur de production, qui se trouve sur Bluehost.

J'utilise "/" pour le chemin et "mydomain.com" pour le domaine lors de la configuration du cookie avec une expiration de 60 jours. Je peux voir les cookies sur le navigateur correctement et je peux confirmer que les valeurs sont correctement définies par rapport aux valeurs dans la base de données.

Chaque fois que la page est actualisée, le serveur n'obtient pas le cookie et crée un nouveau jeton et le renvoie au navigateur et crée à nouveau un nouvel enregistrement dans la base de données. Le nouveau cookie correspond à nouveau au dernier enregistrement, mais la prochaine fois que je me rafraîchirai, la même chose recommence. Impossible de gérer le jeton, il est donc impossible de naviguer sur le site.

Une idée de pourquoi cela se passe-t-il? Est-il possible que j'ai manqué un réglage?

Je l'ai testé sur Firefox, Opera, Safari et Chrome.

Merci.

EDIT:

Il est un problème lié à PHP & Bluehost, je stockait 3, les chaînes de 40 caractères sur la valeur du cookie au format sérialisé. La fonction unserialize() ne s'exécutait pas pour une raison quelconque sur Bluehost mais fonctionnait correctement sur ma machine dev. Donc, j'ai changé la valeur stockée à 40chars.40chars.40chars et a explosé la valeur avec le délimiteur "." pour obtenir les 3 cordes.

Merci encore.

Répondre

2

vous devez utiliser

.mydomain.com 

au lieu de

mydomain.com 

par exemple:

setcookie("MyCookie", $value, time()+60*24*3600, "/", ".mydomain.com", 1); 
+0

Il ajoute le. (point) devant lui-même. J'ai pensé à cela et essayé mais la question reste. Il semble que le navigateur n'envoie pas le cookie avec les données du jeton. Si j'imprime le $ _REQUEST, je peux voir tous les autres cookies sauf celui qui contient les valeurs du jeton. – petsoukos

+0

donnez-nous quelques exemples de code s'il vous plaît. comment obtenez-vous/définir le cookie que vous avez mentionné? comment définissez-vous le jeton? –

+0

Eh bien, je viens de découvrir que bluehost n'aime pas beaucoup la fonction unserialize(). Je stockais les 3 valeurs dans le cookie de jetons sérialisé mais je pouvais obtenir ces valeurs lors de la prochaine actualisation. Je réécris le script du système de jetons pour utiliser implode() et explode() pour définir et obtenir les données de cookie. Merci d'avoir pris le temps de répondre. ;) – petsoukos