Comment utiliser la même sessions pour chaque sous domaine ?

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Comment utiliser la même sessions pour chaque sous domaine ?

Messagepar silius » 30 Juin 2005 à 23:39

Bonjour tous le monde,
Déjà merci pour toutes les infos utiles que l’on trouve ici.

Pour mon premier post sur ce forum je vais vous poser une question concernant les sessions.

Utiliser les sessions du forum sur son site n’est pas compliqué et d’ailleurs plusieurs topiques en parlent, mais comment faire pour utiliser les sessions du forum alors que le site et le forum sont deux sous domaines ?

En gros si j’ai mon site à l’adresse –http://www.exemple.com et mon forum a l’adresse –http://forums.exemple.com ( ce qui est le cas de ce site ) comment faire pour resté connecter lorsque je passe d’un sous domaine a l’autre.

J’espère avoir été claire :)
Merci d’avance
silius
Posteur néophyte
Posteur néophyte
 
Messages: 2
Enregistré le: 30 Juin 2005 à 11:55

Messagepar Oyo » 01 Juil 2005 à 00:59

C'est ce que j'utilise aussi :)

dans un premier temps on va décomposé l'architecture du site:
Légende:
- zone vert = site
- zone bleu = forum

exemple.com
+--index.php

+--+forums (forums.exemple.com)
.....+--login.php
.....+--index.php

+--page.php

Dans tes pages vertes, c'est a dire celle du site, tu dois avoir au debut de chaque page, ce qui implique que ton site doit être en php):
Code: Tout sélectionner
define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

// Start session management 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 
// End session management 


ensuite pour te connecter depuis le site sans passer par le forum tu peux utiliser ce systeme de formulaire que j'utilise sur mon propre site (a toi de modifier les styles c'est un fichier exemple)
Entrons dans le vif du sujet:

<form action="forums/login.php" method="post">
<input type="hidden" name="redirect" value="../index.php">
<table>
<tr>
<td>Votre pseudo:</td>
<td><input type="text" class="post" name="username" size="25" maxlength="20" value="" /> </td>
</tr>
<tr>
<td>Votre mot de passe:</td>
<td><input type="password" class="post" name="password" size="25" maxlength="25" /></td>
</tr>
<tr>
<td>Rester connecter&nbsp;:</td>
<td><input name="autologin" type="checkbox" /></td>
</tr>
<tr>
<td style="text-align: center"><input type="submit" name="login" class="mainoption" value="Connectez vous" /></td>
</tr>
</table>
</form>


Les 2 bouts de code sont d'une importance capitale pour te connecter :

forums/login.php te permet d'aller chercher le fichier de connection qui te permettra de te loguer en même temps sur ton site et ton forum ce qui enfaite important ici c'est "forums/" qui indique le chemin d'acces de phpBB.

<input type="hidden" name="redirect" value="../index.php"> quand a lui effectue une redirection invisible une fois t'être connecter tu sera renvoyer sur
+--index.php (exemple.com/index.php)


Pour modifier la redirection il suffit juste de rempalcer index.php par (exemple) page.php

Ensuite pour garder la connection entre le site et le forum sans perdre les session lors que tu fera un lien vers une page du site tu devra employer la fonction append_sid() (ligne 385 - /includes/sessions.php) .

Détail de la fonction append_sid():

void append_sid(mixed$url, mixed $non_html_amp = false]) ([mixed $non_html_amp = false] est appellé inquement dans le fichier session)
plus concretement on l'apelle comme ceci:
Code: Tout sélectionner
$var = append_sid("page.$phpEx");
tu peux aussi remplacer .$phpEx par .php

Enjoy
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 19:02
Localisation: Paris

Messagepar silius » 01 Juil 2005 à 09:50

Aaaaaaaaaaaaaaaaaaa merci beaucoup tu me sauve la vie :D
Depuis le temps que je cherche :)
Encore merci
silius
Posteur néophyte
Posteur néophyte
 
Messages: 2
Enregistré le: 30 Juin 2005 à 11:55

Messagepar Oyo » 01 Juil 2005 à 11:53

un de c'est 4 je ferai un vrai bon tuto :)
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 19:02
Localisation: Paris

Messagepar MC_RaT » 14 Juil 2005 à 20:55

Bonjour, je ne comprend pas bien les modifs a faire.

Je suis dans le meme cas, et j'aimerais bien que ca marche ^^

Nul part dans la réponse de Oyo, il ne fait réference a l'adresse du forum.
Le forum.exemple.com
Je ne le voit nul part.
Donc je ne comprend pas bien là :?

Code: Tout sélectionner
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management


J'ai mi exactement ceci sur mon site, jusque la je comprend, c'est le truc standard pour les sessions, mais ensuite:

Code: Tout sélectionner
<form action="forums/login.php" method="post">
<input type="hidden" name="redirect" value="../index.php">
<table>
<tr>
<td>Votre pseudo:</td>
<td><input type="text" class="post" name="username" size="25" maxlength="20" value="" /> </td>
</tr>
<tr>
<td>Votre mot de passe:</td>
<td><input type="password" class="post" name="password" size="25" maxlength="25" /></td>
</tr>
<tr>
<td>Rester connecter&nbsp;:</td>
<td><input name="autologin" type="checkbox" /></td>
</tr>
<tr>
<td style="text-align: center"><input type="submit" name="login" class="mainoption" value="Connectez vous" /></td>
</tr>
</table>
</form>



Code: Tout sélectionner
forums/login.php


je ne comprend pas.
Le chemin du forum n'était pas sur un autre domaine ?
Donc si il est sur un autre domaine, en vrac, comme sur ce forum; il faudrait juste mettre "./" non ?

Apres, le :
<input type="hidden" name="redirect" value="../index.php">


Lorsque l'on se connecte, sur le site, ca ramenera a la meme page c'est bien ca ?
alors pourquoi "../"
et pas juste "./"


Et enfin,
append_sid():

Je ne vois ou il faut le mettre.
Il est dit que il faut le mettre a chaque lien ?


Désolé, je suis tout jeune en php ^^
Merci pour votre aide !
MC_RaT
Posteur néophyte
Posteur néophyte
 
Messages: 12
Enregistré le: 09 Juil 2005 à 20:49

Messagepar Oyo » 14 Juil 2005 à 21:43

Si tu applique exactement ce que j'ai dit cela fonctionne ^^

en locurence forum.exemple.com on s'en fou royalement car si tu regarde la structure du ftp :

exemple.com
+--index.php
+--+forums (forums.exemple.com)
.....+--login.php
.....+--index.php
+--page.php

tu a effectivement 2 domaines : exemple.com et forums.exemple.com mais en réalité forums.exemple.com n'est qu'un sous-domaine qui redirige vers un dossier dans le même ftp

la seul chose c'est que pour créer le sousdomaine forums.exemple.com tu dois avoir un dossier forums donc on a pas besion d'utilisé forums.exemple.com/login.php sinon on perdrai trop de temps a aller chercher le sousdomaine alors que passé directement par exemple.com/forums/login.php (ou plus exactement forums/login.php) c'est plus rapide ;)
Donc si il est sur un autre domaine, en vrac, comme sur ce forum; il faudrait juste mettre "./" non ?
non car tu dois pointé sur le dossier ou est le fichier login.php

non quand tu utilise
Code: Tout sélectionner
<input type="hidden" name="redirect" value="../index.php">
(cf la structure du ftp) tu est rediriger vers exemple.com/index.php qui est bien le site

alors pourquoi "../"
et pas juste "./"

pourquoi ? simplement parceque si tu utilise "./" cela va te rammener vers forums.exemple.com/index.php (ou forums/index.php) alors que si tu utilise "../" cela remonte l'architecture du site et donc retourne sur exemple.com/index.php (c'est comme dans le fichier admin de phpBB)

append_sid(): c'est append_sid(); ;)

doit être mis sur les liens dans tes fichiers php on va prendre un exemple:
Code: Tout sélectionner
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management

$test = append_sid("faq.$phpEx");

echo '
<table class=\"forumline\" width=\"100%\" cellspacing=\"1\" cellpadding=\"4\" border=\"0\">
	<tr>

		<th class=\"thHead\" height=\"25\"><b>Informations</b></th>
	</tr>
	<tr>
		<td class=\"row1\"><table width=\"100%\" cellspacing=\"0\" cellpadding=\"1\" border=\"0\">
			<tr>
				<td>&nbsp;</td>
			</tr>
			<tr>
				<td align=\"center\"><span class=\"gen\">Merci de visiter <a href="'.$test.'" >cette page</a> </span></td>
			</tr>
			<tr>
				<td>&nbsp;</td>
			</tr>
		</table></td>
	</tr>
</table>
<br clear=\"all\" />';
?>

C'est un exemple je savais pas quoi mettre :p
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 19:02
Localisation: Paris

Messagepar MC_RaT » 14 Juil 2005 à 22:05

Merci, mais:

attendez, la je suis plus. (encore ^^)

Ce truc, c'est si par exemple on a le site qui se trouve par exemple:
http://nicosoftgames.free.fr
et le forum:
http://forum.nicosoftgames.free.fr

c'est bien ca ?

Je en comprend pas comment il pourrais recherché le forum sans savoir ou chercher :roll:

En faite je doit me gourrer complètement ^^

Si ce n'est pas pour ca, je pose ma question, est-ce possible, de faire pareil, mais pour mon exemple ?

J'ai deux sites sur free, un qui me sert de site, et un de forum. Je voudrait logger le site comme tout le monde ^^
Mais je ne comprend pas comment mettre l'adresse du forum en lien relatif dans le :

Code: Tout sélectionner
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management 


Merci encore ^^
MC_RaT
Posteur néophyte
Posteur néophyte
 
Messages: 12
Enregistré le: 09 Juil 2005 à 20:49

Messagepar Oyo » 14 Juil 2005 à 23:17

tu ne peux pas liée 2 site même si il sont sur le même serveur tu peux le faire uniquement si tu est toi même l'admin du resaux

si ton site est sur teste.com et ton forum sur autretest.com sur 2 ftp different tu ne pourra pas les liée

il faut que le forum soit sur le même ftp
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 19:02
Localisation: Paris

Messagepar Vlad Tepesch » 14 Juil 2005 à 23:20

Question :D

Si le site est dans / et le forum dans /forum/ est ce qu'un simple session_start suffira en sachant que pour les deux, les infos de sessions sont stockés dans /sessions (sauf si phpBB les redirige :p)
Avatar de l’utilisateur
Vlad Tepesch
Grand-maître des floodeurs
Grand-maître des floodeurs
 
Messages: 3420
Enregistré le: 04 Juil 2005 à 16:23
Localisation: Paris

Messagepar MC_RaT » 14 Juil 2005 à 23:27

a ok

je em disait bien ^^

domage :cry:

Je c pas comment je v pouvoir faire pour mon site alors :cry:

Ca pourrait etre facile de re-créer un formulaire pour se logger, mais le plus dur serait de vérifier si on est connecter.

arf

Merci pour les réponses :?
MC_RaT
Posteur néophyte
Posteur néophyte
 
Messages: 12
Enregistré le: 09 Juil 2005 à 20:49

Messagepar Oyo » 14 Juil 2005 à 23:41

Vlad Tepesch, non normalement il faut utilisé :

Code: Tout sélectionner
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management
;) si tu veux garder les sessions

MC_RaT, si ton site respecte l'architecture donnée tu a aucun probleme si tu a 2 site distant tu ne pourra rien faire
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 19:02
Localisation: Paris

Messagepar Vlad Tepesch » 14 Juil 2005 à 23:43

Ouais, Oyo, j'ai compris (même si je trouve ça compliqué donc je vais le zapper et tant pis pour les utilisateurs :D)

Mais je trouve ça bizarre vu que chez free, toutes les infos de sessions sont redirigé dans le dossier /sessions (à créer soit même en passant) donc je me demandais où phpBB les mettait (en gros, s'il les gère tout seul comme un grand ou s'il utilise les fonctions de bases)
Avatar de l’utilisateur
Vlad Tepesch
Grand-maître des floodeurs
Grand-maître des floodeurs
 
Messages: 3420
Enregistré le: 04 Juil 2005 à 16:23
Localisation: Paris

Messagepar Oyo » 14 Juil 2005 à 23:46

phpBB les gere via la base de donnée ^^
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 19:02
Localisation: Paris

Messagepar Vlad Tepesch » 14 Juil 2005 à 23:49

Raaa, c'est relou, pourquoi il utilise pas les cookies de sessions?

En même temps, ces petits fichiers ne fonctionnent que si le dossier /sessions existe, ce qui amenerait 95% des gens utilisant phpBB sur ce forum pour demander pourquoi ça marche pas et ça énerverait les modos etc :D

Ca va niveau sécurité de laisser le serveur gérer tout seul les sessions? (et pis je m'en fous, j'ai une méga copie en local)
Avatar de l’utilisateur
Vlad Tepesch
Grand-maître des floodeurs
Grand-maître des floodeurs
 
Messages: 3420
Enregistré le: 04 Juil 2005 à 16:23
Localisation: Paris

Messagepar MC_RaT » 16 Juil 2005 à 11:26

ok.

ba merci quand meme; dommage.
MC_RaT
Posteur néophyte
Posteur néophyte
 
Messages: 12
Enregistré le: 09 Juil 2005 à 20:49

Suivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités