2011-02-01 6 views
1

ici est ma page de connexion brutePourquoi mes cookies ne fonctionnent pas correctement dans les iframes?

http://wordswithfriends.net/mytourney/login.php

utilisateur de test comme suit: l: testuser p: test1234

affiche NOM D'UTILISATEUR:

http://wordswithfriends.net/mytourney/test_cron.php

Toutefois, si je envelopper le ci-dessus dans un iframe comme suit:

http://wordswithfriends.net/?page_id=386

Les cookies ne semblent pas fonctionner. Pour montrer cette connexion en utilisant à la fois avec et sans iframe. Déconnectez-vous en utilisant iframe.

http://wordswithfriends.net/mytourney/test_cron.php

affiche toujours le nom d'utilisateur. Connectez-vous à l'aide

http://wordswithfriends.net/mytourney/index.php

Quelle est exactement la même page. Maintenant, le nom d'utilisateur disparaît. Comment puis-je obtenir une cohérence entre les deux?

+0

essayez de spécifier de sauvegarde de session chemin avec session_save_path() si cela ne le font pas travail, essayez de spécifier le chemin et le domaine du cookie de session avec session_set_cookie_params() –

Répondre

1

Il y a une différence très subtile:

www.wordswithfriends.net (host: .wordswithfriends.net) 

wordswithfriends.net (host: wordswithfriends.net) 

Vos cookies sont heurtaient depuis les domaines d'accueil sont différents. Lorsque vous définissez le cookie, inclure le domaine avec un .domainname.net en utilisant setcookie():

setcookie("cookiekey", $value, time()+3600, "/", ".wordswithfriends.net", 1); 

(ou comme vous le faites)

Et cela va vous assurer qu'il fonctionne pour tous les domaines, non seulement wordswithfriends .net.

NOTE

Vous pouvez également régler:

session_set_cookie_params(time()+3600, '/', ".wordswithfriends.net", true) 

Dans le cas où votre cookie de session doit être ajustée aussi. session_set_cookie_params()

1

Votre iframe a le nom de domaine www.wordswithfriends.net, mais pas votre page. Essayez d'utiliser un cookie générique *.wordswithfriends.net ou faites correspondre les deux domaines.

+0

Êtes-vous sûr de vouloir utiliser le *. pour un joker? J'ai vu le nom de domaine. –

+0

Vous ne devez pas _need_ it, mais je trouve qu'il est plus facile à voir. Une période solitaire peut être facilement évitée. – Uldeim

0

Je pense que this hack vous aidera, car il semble être un problème de cookie thirdparty - mais il est une sorte de bizarre un peu ...

+0

Ce n'est pas un problème de cookie d'un tiers. Ils sont tous deux sur le même domaine. –

+0

Uups, désolé, je devrais lire attentivement. Mes excuses. – Marc

Questions connexes