OVH Cloud OVH Cloud

Sessions + multidomaines

5 réponses
Avatar
Yttrium
Bonjour,

Je gère un site qui doit travailler sur plusieurs domaines distincts.

Existe t il une solution qui me permettrait de conserver une session,
lorsque l'utilisateur passe de domaine1.com à domaine2.com ?

Il semblerait que cela ne soit pas possible, puisque la session est
attachée à un domaine.

D'avance merci de vos conseils.

Cordialement.

Yttrium

5 réponses

Avatar
John GALLET
Bonjour,

Existe t il une solution qui me permettrait de conserver une session,
lorsque l'utilisateur passe de domaine1.com à domaine2.com ?


Oui bien sûr, mais sa complexité dépend surtout de la répartition physique
des ressources. Par exemple, si les N domaines disposent d'une base de
données commune, c'est 100% transparent.

Il semblerait que cela ne soit pas possible, puisque la session est
attachée à un domaine.


Non, l'accès à un cookie possède des restrictions liées aux domaines. Et
il faut qu'il soit très clair que session!=cookie.

a++;
JG

Avatar
Yttrium
Bonjour,

Existe t il une solution qui me permettrait de conserver une session,
lorsque l'utilisateur passe de domaine1.com à domaine2.com ?


Oui bien sûr, mais sa complexité dépend surtout de la répartition physique
des ressources. Par exemple, si les N domaines disposent d'une base de
données commune, c'est 100% transparent.

En l'occurence, les N domaine partagent une base de données commune,

mais les sessions ne sont pas gérées en base.


Il semblerait que cela ne soit pas possible, puisque la session est
attachée à un domaine.


Non, l'accès à un cookie possède des restrictions liées aux domaines. Et
il faut qu'il soit très clair que session!=cookie.


Sur ce point, c'est entendu.


a++;
JG



Avatar
Denis Beauregard
Le 18 Sep 2007 08:15:24 GMT, Yttrium
écrivait dans fr.comp.lang.php:

Bonjour,

Je gère un site qui doit travailler sur plusieurs domaines distincts.

Existe t il une solution qui me permettrait de conserver une session,
lorsque l'utilisateur passe de domaine1.com à domaine2.com ?

Il semblerait que cela ne soit pas possible, puisque la session est
attachée à un domaine.


Une solution parfois utilisée, c'est d'avoir une image sur un des
domaines et de s'en servir avec les autres pour propager les données
de session.

Je dis tout de suite que je ne sais pas comment cela se fait du point
de vue technique, mais les vendeurs de pub gèrent cela très bien
puisque leur image dépose un cookie même si ce n'est pas une page
de leur nom de domaine.


Denis

Avatar
Mickael Wolff

Une solution parfois utilisée, c'est d'avoir une image sur un des
domaines et de s'en servir avec les autres pour propager les données
de session.


Oui mais non.

Je dis tout de suite que je ne sais pas comment cela se fait du point
de vue technique, mais les vendeurs de pub gèrent cela très bien
puisque leur image dépose un cookie même si ce n'est pas une page
de leur nom de domaine.


Ce qu'ils font, c'est qu'ils tracent ton parcours, pour renseigner ta
session chez eux. Ce n'est pas récupérable par le script exécuté sur le
serveur, **car l'image ne fait pas partie de la page web**, c'est une
ressource extérieure.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Avatar
John GALLET
Re,

En l'occurence, les N domaine partagent une base de données commune,
mais les sessions ne sont pas gérées en base.


Si ce sont les sessions natives de php qui sont utilisées, on peut
regarder:

http://fr2.php.net/manual/en/function.session-set-save-handler.php

Mais même sans revoir le système de session, on peut donc avoir une table
des identifiants sessions valides sur plusieurs domaines. Attention aux
télescopages.

Côté perfs, si c'est du mysql, on peut s'intéresser à ENGINE=MEMORY
sachant qu'on perdra le contenu de la table en cas de reboot machine (et
probablement en cas de redémarrage de mysql, mais je n'ai pas vérifié).

a++;
JG