2010-07-21 5 views
0

Je me demande si je fais quelque chose de mal ou si je me trompe?AJAX & PHP: charger un domaine étranger via un proxy et utiliser un cookie de session?

Je charge une partie d'un de sous-domaine avec jquery load(). Juste avant de lancer la méthode de chargement, je sauvegarde un mot de passe pour un $ _SESSION avec php. La partie du sous-domaine que je charge avec jquery load() a besoin de ces informations de mot de passe.

Cela compte-t-il comme étant la même session, car je ne peux pas récupérer les informations $ _SESSION dans ma partie de sous-domaine chargée?

Ou ne fonctionne pas parce que je suis en train de charger une partie du site DIFFERENT de sorte que la session est différente?

une idée?

Répondre

0

$_SESSION est lié à un cookie nommé PHPSESSID, qui est disponible par défaut uniquement au nom de domaine exact où vous l'utilisez. a.example.com ne peut pas accéder aux cookies de b.example.com, et ainsi les sessions ne peuvent pas traverser, non plus.

Il y a, cependant, un moyen de mettre le cookie PHPSESSID être disponible sur l'ensemble de votre domaine: session_set_cookie_params() vous permet d'appliquer des paramètres pertinents à ce cookie PHPSESSID. En définissant le domaine à .example.com (le point à l'avant doit être là!), Vous rendez le cookie disponible pour example.com et tous les sous-domaines.

session_set_cookie_params(0, '/', '.example.com'); 
+0

merci de l'essayer! – matt

+0

où dois-je définir cela? juste après le session_start(); ? – matt

+0

@mathiregister - Je ne l'ai jamais utilisé; Je l'ai seulement trouvé dans les documents PHP par Googling. Je parie que vous le mettriez * avant * 'session_start', de sorte que la session commence avec les paramètres corrects. Certains navigateurs et extensions vous permettront d'inspecter vos cookies en détail - cela pourrait aider à déboguer ce bit particulier. – Matchu