Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1722 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Passer session d'un sous-domaine à l'autre ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Passer session d'un sous-domaine à l'autre ?

n°1332127
mazou
Posté le 25-03-2006 à 15:14:38  profilanswer
 

Bonjour,
 
J'ai 3 sites :
 
http://www.sousdomaine1.domaine.fr
http://www.sousdomaine2.domaine.fr
http://www.sousdomaine3.domaine.fr
 
Il n'y a donc que les sous-domaines qui diffèrent.
 
Je souhaite, quand j'ouvre une session à partir d'un de ces sites, qu'elle soit ouverte et valide sur les autres.
 
Est-ce possible ? Et si oui comment ? Car pour l'instant je n'y arrive pas.
 
Merci pour vos réponses, même négatives.

mood
Publicité
Posté le 25-03-2006 à 15:14:38  profilanswer
 

n°1332143
newneo2001
Posté le 25-03-2006 à 15:52:55  profilanswer
 

non ce n'est pas possible, la session est définie pour une sous domaine.
 
c'est justement l'avantage, c'est qu'une session sur le site principale  
www.site.com ne se retrouve pas sur le site demo.site.com par exemple
 
Cdt


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1332146
nargy
Posté le 25-03-2006 à 15:56:58  profilanswer
 

oulà, ça dépends de l architecture réseau...
 
si ça se passe sur un même serveur, un petit tour sur la doc php de session t aidera à trouver les bonnes options ini_set().
 
sinon, il te reste deux possibilités:
- facile mais un peu dégeu: faire passer un sérialize des variables de sessions d un domain à l autre,
- plus clean: une base de donnée commune pour stocker les variables de sessions

n°1332148
newneo2001
Posté le 25-03-2006 à 15:59:30  profilanswer
 

c'est complétement à déconseiller. un sous domaine être indépendant.


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1332151
nargy
Posté le 25-03-2006 à 16:03:47  profilanswer
 

non, pas forcément. si l internaute tient à consulter ses mails sur mail.dom.com puis revenir au forum sur forum.dom.com, en passant par wiki.dom.com, il est tout à fait utile de garder les même paramètres de session, mais de séparer en sous domaines.
 
Autre solution plus simple pour réseau interne:
ini_set(session.save_path...) permet de définir un chemin d accès aux fichiers de session, en partageant ce dossier en réseau à l aide de NFS ou SAMBA tu peut partager les sessions entre serveurs.

n°1332152
nargy
Posté le 25-03-2006 à 16:05:47  profilanswer
 

> un sous domaine être indépendant.
sûrement pas pour le load balancing...

n°1332235
mazou
Posté le 25-03-2006 à 18:36:21  profilanswer
 

Citation :

si ça se passe sur un même serveur, un petit tour sur la doc php de session t aidera à trouver les bonnes options ini_set()


Les 3 sites sont sur le même serveur. Mais je ne comprends pas ce que permet exactement cette fonction.
 

Citation :

faire passer un sérialize des variables de sessions d un domain à l autre,


Peux tu être plus précis stp. Me montrer un exemple ?
 

Citation :

une base de donnée commune pour stocker les variables de sessions


Ok, mais comment rendre valide une session à partir d'un autre sous domaine ?
 
Merci pour vos réponses
 
PS : ca ne serait pas plus simple avec des cookies ?

n°1332244
nargy
Posté le 25-03-2006 à 18:57:37  profilanswer
 

> PS : ca ne serait pas plus simple avec des cookies ?
Les sessions utilisent déjà des cookie...
 
Ok, pour exemple, puisque c est sur le même serveur, tu peut sans problème réserver un dossier spécial pour que PHP y stocke les variables de session.
 
config_session.inc:

Code :
  1. <?
  2. // utiliser le même répertoire pour tous les serveurs
  3. ini_set("session.save_path","/web/secure/phpsessions/" );
  4. // rétablir une session d un autre serveur
  5. if(isset($mysid))
  6.   session_id($mysid);
  7. ?>


 
page.php:

Code :
  1. <? include("config_session.inc" ); session_start(); ?>
  2. <a href="http://domaine2.dom.net/?mysid=<? echo session_id(); ?>">changer de serveur</a>


 
Par contre tu n a plus la génération automatique de n° de session, tu doit le faire à chaque lien en utilisant ``mysid``.


Message édité par nargy le 25-03-2006 à 18:58:50
n°1332245
nargy
Posté le 25-03-2006 à 18:59:33  profilanswer
 

edit: j ai change page.php ci dessus.

n°1332248
mazou
Posté le 25-03-2006 à 19:04:01  profilanswer
 

Merci beaucoup !
 
J'essai ça lundi.

mood
Publicité
Posté le 25-03-2006 à 19:04:01  profilanswer
 

n°1332752
mazou
Posté le 27-03-2006 à 11:23:49  profilanswer
 

Salut !
 
Ca marche... presque parfaitement.
Je récupère bien mon id de session sur les 3 sites.
Mais est-ce normal que je ne récupère pas les variables passés en sessions sur les 3 sites ?
Par exemple si je fais : $_SESSION['test'] = 'Ca marche !'; sur un des sites, je n'arrive pas à récupérer  $_SESSION['test'] sur les autres.
 
PS : peux-être faut-il simplement enregistrer l'id de session dans une table et vérifier à chaque fois...


Message édité par mazou le 27-03-2006 à 11:31:23
n°1332770
nargy
Posté le 27-03-2006 à 11:52:43  profilanswer
 

Normalement si tu mets:
ini_set("session.save_path","/web/secure/phpsessions/" );
sur tous les serveurs, ils enregistrent les cookies au même endroit:
/web/secure/phpsessions/
 
tu doit inclure le fichire config_session.inc ci dessus (ou un equivalent) sur absolument toutes tes pages de tout tes serveurs..

n°1332787
mazou
Posté le 27-03-2006 à 12:04:05  profilanswer
 

nargy a écrit :


Normalement si tu mets:
ini_set("session.save_path","/web/secure/phpsessions/" );
sur tous les serveurs, ils enregistrent les cookies au même endroit:
/web/secure/phpsessions


 
C curieux ca ne fonctionne pas, je ne peux pas récupérer les variables précédemment enregistrées

n°1332793
nargy
Posté le 27-03-2006 à 12:10:31  profilanswer
 

regarde dans le répertoire:
si il existe
si il y des trucs dedans

n°1332796
mazou
Posté le 27-03-2006 à 12:13:32  profilanswer
 

nargy a écrit :

regarde dans le répertoire:
si il existe
si il y des trucs dedans


J'ai bien mes fichiers des sessions ca pas de pb.
Mais lors de l'appel d'une variable précédement enregistrée sur un autre sous domaine il n'y a rien.

n°1332797
nargy
Posté le 27-03-2006 à 12:14:00  profilanswer
 

s il y a rien dedans essaye de mettre le ini_set directement dans ton php.ini

n°1332800
nargy
Posté le 27-03-2006 à 12:15:47  profilanswer
 

> Mais lors de l'appel d'une variable précédement enregistrée sur un autre sous domaine il n'y a rien.
 
tu as bien passé le sid de la session? et restauré avec sessionid($sid)?
 

n°1332803
nargy
Posté le 27-03-2006 à 12:19:22  profilanswer
 

sinon il te reste cette solution:
http://fr2.php.net/manual/en/funct [...] andler.php
il y a des exemples avec une base de donnée à la fin de la page, dans les commentaires des utilisateurs...

n°1332811
mazou
Posté le 27-03-2006 à 12:49:11  profilanswer
 

Je suis con...
ca une erreur de ma part.
Au fait il faut faire :

Citation :

if(isset($mysid))
session_id($mysid);
session_start() ;


Et ca fonctionne (ajouter le session_start()).
 
Merci beaucoup pour ton aide.

n°1332819
Woutcha
Posté le 27-03-2006 à 13:16:58  profilanswer
 

mazou,
 
as-tu tout simplement essaye de mettre cette directive dans ton php.ini (marche aussi avec un .htaccess ou ini_set()) :
 
session.cookie_domain = "domaine.fr"
 
Theoriquement ca doit te permettre de maintenir une session sur plusieurs sous-domaines...

n°1332822
mazou
Posté le 27-03-2006 à 13:19:35  profilanswer
 

Woutcha a écrit :

mazou,
 
as-tu tout simplement essaye de mettre cette directive dans ton php.ini (marche aussi avec un .htaccess ou ini_set()) :
 
session.cookie_domain = "domaine.fr"
 
Theoriquement ca doit te permettre de maintenir une session sur plusieurs sous-domaines...


En effet c super simple.
et ca fonctionne très bien !
 
Merci beaucoup !


Message édité par mazou le 27-03-2006 à 13:24:08
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Passer session d'un sous-domaine à l'autre ?

 

Sujets relatifs
probleme cookies de sessioncomment on change le nom de domaine ?
Perte de données de session dans formulaireProblème pour passer d'une page à une autre sur forum phpbb
[résolu] Problème Session Bean Stateful et JSF sous RAD6passer de g++ au c++
pb variables de sessionAide pour nom de domaine
Problème de connection/session avec un site[SQL] passer une variable dans la clause FROM
Plus de sujets relatifs à : Passer session d'un sous-domaine à l'autre ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR