2009-04-27 3 views
2

Tout d'abord, je l'ai utilisé toutes les méthodes proposées dans cet article SO: Allow php sessions to carry over to subdomainsPourquoi ne puis-je pas passer des sessions utilisateur entre sous-domaines?

Pour votre commodité, voici les conseils que je suivais déjà:

Voici les 3 options.

place dans votre php.ini:

session.cookie_domain = ".example.com"

Dans votre .htaccess:

php_value session.cookie_domain .example.com

Comme la première chose dans votre script:

ini_set('session.cookie_domain','.example.com');

Je 9 sous-domaines (losangeles.mysite.com, sandiego.mysite.com, etc), et je voudrais utiliser rs pour pouvoir rester signé entre eux. À partir de maintenant, cependant, le serveur traite chaque sous-domaine comme un site entièrement contenu avec des sessions distinctes.

Y at-il autre chose que je peux faire? Ou comment puis-je résoudre ce problème?

+0

Avez-vous vérifié quelle valeur est réellement utilisée dans le champ d'en-tête Set-Cookie? – Gumbo

+0

yup, à la fois dans le .ini ET dans mon script, il est réglé sur ".mysite.com" .. qui devrait théoriquement passer, non? – johnnietheblack

+2

Théoriquement. Mais avez-vous regardé dans l'en-tête HTTP de la réponse que vous avez reçu du serveur? – Gumbo

Répondre

4

Je suppose que les cookies sont configurés pour .foo.example.com au lieu de .example.com. Essayez d'installer le module complémentaire Live HTTP Headers pour Firefox et vérifiez ce que les cookies sont configurés.

Pour ce faire, ouvrez Live HTTP Headers et avec la fenêtre ouverte, accédez à la page qui définit le cookie. Dans la fenêtre, il devrait y avoir une ligne qui ressemble à ceci.

Set-Cookie: lng = en-US; chemin = /; domaine = .example.com;

Si le cookie est défini pour domain = .foo.example.com; alors vous savez quel est le problème. Cependant, si le domaine est .example.com, il se passe quelque chose d'autre.

De même, si les cookies sont configurés pour .example.com sur foo.example.com, vérifiez si le navigateur envoie des cookies à bar.example.com. Cela devrait aider à localiser le problème.

+0

okay, donc j'ai trouvé le SET-COOKIE, et il dit en effet domain = .mysite.com – johnnietheblack

+0

AUSSI, je place des cookies sur la machine du client, et ils semblent passer juste bien entre les sous-domaines ... cela pourrait-il signifier quelque chose? – johnnietheblack

+0

Si les cookies sont envoyés aux différents sous-domaines, il semble que ce soit un faux-fuyant. Il y a probablement un problème ailleurs dans le code. – Buddy

Questions connexes