Sessions et sous domaines

WRInaute discret
Bonjour,

Je viens d'installer un forum phpBB et j'ai créé une connexion automatique au forum depuis le formulaire de connexion de mon site.

Tout fonctionne parfaitement jusqu'au moment où je veux utiliser un sous domaine pour le forum (le site = localhost, le forum = forum.localhost)

Si je vais sur localhost/forum, il n'y a pas de problème, les valeurs enregistrées dans la session sont bien récupérées.
Si je vais sur forum.localhost, il ne reconnais plus la session ce qui est normal puisque une session dépend d'un nom de domaine et qu'un sous domaine est considéré comme un nom de domaine unique.

J'ai fait ma petite recherche sur google et j'ai trouvé cette fonction
PHP:
session_set_cookie_params(0, '/', '.localhost',false);

mais j'ai pas trouvé comment il fallait faire pour l'utiliser et la doc de php est pas très claire à ce sujet.

Bonne journée
 
WRInaute occasionnel
bonjour essaie par le panneau d'admin de mettre le bon domaine.
ca marche chez mondomaine.free.qkchose ?
ou alors j'ai pas pige ton souci :oops:
 
WRInaute discret
En faites j'arrive pas à accéder à la session créé sur localhost/monsite depuis forum.localhost. Mais j'y arrive depuis localhost/monsite/forum
 
WRInaute occasionnel
Tu peux régler ca avec un Vhost en le definissant soit dans le .conf d'apache soit par un htaccess.
je peux pas t'en dire plus desolé
essaie sur apache.org pour avoir de l'info juste et fiable
 
Nouveau WRInaute
Bonjour,
J’ai exactement le même problème que toi, pour l’instant j’arrive à me connecter a partir du site sur le site + le forum mais dés que je vais sur le forum et que je reviens sur le site il est déconnecté.
Si tu a trouvé la solution j’aimerais que tu nous tienne au courant :)
Je fais de même de mon coté.
+@+
 
WRInaute discret
Pour l'instant ça marche de mon côté mais c'est pas parfait.

J'explique ma méthode :
- le membre s'enregistre sur le site par un formulaire de connexion
- je lui crée donc une session avec ses infos persos
- j'ai mis ensuite un lien vers le forum phpBB, sous cette forme :
-http://forum.localhost/login.php?sess_id=4171a4c80c6079a9ab3b534814e2ec9b
le sess_id correspond à l'id de la session créée sur le site
(si le visiteur ne s'est pas enregistré, le lien est -http://forum.localhost et il peut se connecter grace au formulaire de connexion sur le forum)
- j'ai modifié le code de la page login.php :

Code:
if(isset($_GET['sess_id']) && !empty($_GET['sess_id'])){
	session_id(addslashes(htmlspecialchars($_GET['sess_id'])));
}
session_start();
Je récupére la valeur du sess_id et je récupére la session avec session_id();

Code:
if(!isset($HTTP_GET_VARS['redirect']) && $_SESSION['pseudo']!=""){
	$HTTP_POST_VARS['username'] = $_SESSION['pseudo'];
	$HTTP_POST_VARS['password'] = $_SESSION['pass']; 
	$HTTP_POST_VARS['login'] = true;
}
Je crée la connexion automatique au forum

En faites, j'utilise toujours les sessions propres au forum et j'utilise la session du site juste pour me connecter automatiquement au forum.

Mon système est loin d'être parfait, j'aurais préféré ne pas envoyer le sess_id dans l'url et plutôt utiliser session_set_cookie_params. Mais ça ne marchais pas sur ma config.

Ma méthode est simple et au bout du compte ça fonctionne c'est bien le principal.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut