Vous ne pouvez pas définir interdomaine cookies par défaut. Je crois que vous pouvez configurer un (des) fichier (s) P3P pour l'activer. http://p3ptoolbox.org/guide/section4.shtml#IVd Je ne l'ai pas fait moi-même, donc je ne sais pas combien des navigateurs l'implémentent ou si ça marche même de cette façon.
Virb ressemble à du JavaScript. Il a une bibliothèque AJAX qui envoie une requête JSON-P au serveur virb si aucun cookie de session n'est défini. (première charge de Firefox que vous pouvez voir dans Firebug) La réponse JSON indique à la page si l'utilisateur est connecté ou non et met à jour les parties de la page qui doivent refléter le statut de l'utilisateur.
Alors que se passe-t-il que la page incorpore certains JS de virb.com. Depuis le domaine est virb.com, les cookies mis à virb.com sont envoyés au serveur. Le serveur répond alors avec le résultat du cookie au site externe.
Dans le cas de virb, qui ne fonctionnera pas correctement sans JS, je pense que c'est une bonne option. Cependant, vous pouvez faire la même chose avec les redirections HTTP.
Si l'hôte HTTP est pas le domaine principal (example.com):
if (!$_COOKIE['sessionid'] && $_SERVER['HTTP_HOST'] != 'example.com') {
// redirect to your main site
header('Location: http://example.com');
}
Sur le site principal, définissez le cookie, et envoyer l'utilisateur vers le domaine externe (domain.com) en passant l'identifiant de la session dans l'emplacement.
header('Location: http://domain.com.com?sessid='.urlencode($_COOKIE['sessionid']));
Le dernier bit est de rediriger vers la page que vous maintenant que vous avez la même session en cours.
setCookie(...); // sessid in $_GET['sessid']
header('Location: http://domain.com/');
Note, en réalité, vous pouvez envoyer la page que vous êtes actuellement sur le dos à example.com dans la première étape, de sorte que vous pouvez rediriger revenir plus tard. Comme vous n'utilisez que des en-têtes (vous n'avez pas besoin de sortir du contenu) et dans la plupart des cas HTTP/1.1, vous serez sur le même socket TCP. Je pense que c'est plutôt efficace et plus supporté. Option JavaScript Edit: n'oubliez pas de définir le cookie lorsque vous revenez au domaine externe.
La dernière étape est facultative mais elle empêche le sessid d'être dans une URL. Ce qui est plus un problème de sécurité que le garder dans les en-têtes HTTP.
double de http://stackoverflow.com/questions/1064243/php-sessions-across-sub-domains/1064278 – Residuum
Pas à travers les sous-domaines. Je parle de pointer un CNAME d'un autre domaine vers mon domaine et de garder la session. –