Zone membre en symbiose avec le forum phpbb


Contenu du snippet

permet de creer une zone membre en symbiose avec un forum phpbb . des que l'on se logue sur phpbb on l'est aussi tot sur la zone membre et le contraire

tuto sur les cookies phpbb : http://iow4.net

Source / Exemple :


1 ere source ( autologin.php ) permet de reconnaitre un user qui c'est connecte sous phpbb 
------------------------------------------
<?php 
session_start();
///////////////////////////////////////////////////////
/* log automatique un user d'apres son cookie phpbb */ 
/////////////////////////////////////////////////////
include("config.php"); 

/* on chope le nom du cookie sous phpbb */ 
	
	// interoge la base mysql 
	$reponse = mysql_query("SELECT * FROM phpbb_config   WHERE  config_name='cookie_name'  ") ; 
	while ($donnees = mysql_fetch_array($reponse) )
	{
	$nom_cookie = $donnees['config_value']; 
	}
	
	// on ajoute le grain de sel 
	$cookie1 = $nom_cookie."_sid" ; 
	$cookie2 = $nom_cookie."_data" ; 
	
/* test de l'existence de ces petites betes ;) */
	
	if (isset ($HTTP_COOKIE_VARS[$cookie1]) AND isset ($HTTP_COOKIE_VARS[$cookie2]))
	{
	
		// extraction du cookie 
				
		$tmp = array(); 
		$tmp = unserialize($HTTP_COOKIE_VARS[$cookie2]);
	
		$autologin_id = $tmp['autologinid'];
		$user_id = $tmp['userid'];
		
		// login du membre 
		
			// recupere le pseudo 
			
					// verifie qu'il existe 
					$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM phpbb_users WHERE user_id='$user_id'  AND user_password='$autologin_id'  ") or die("erreur dans le requete sql ") ; // compte 
					$donnees = mysql_fetch_array($retour);
					$nbr = $donnees['nbre_entrees'];
					if ( $nbr == 0 ) 
					{
					echo "erreur dans votre identification" ; 
					exit(); 
					}
					
					// chope pseudo 
					$reponse = mysql_query("SELECT * FROM phpbb_users WHERE user_id='$user_id'  AND user_password='$autologin_id'  ") ; 
					while ($donnees = mysql_fetch_array($reponse) )
					{
						$pseudo = $donnees['username']; 
					}
					
			// accorde les droits 
			echo "authentification reussite" ; 
			$_SESSION['auth'] = true ; 
			$_SESSION['pseudo'] = $pseudo ; 
			header("location:zone_rouge/"); 
	
	}
	else 
	{
		header("location:index.php"); // renvoie vers le formulaire 
	}
	
	
	
	
?>
-----------------------------
2eme page : log un membre qui ne l'ai pas deja sur le forum en creant le meme cookie que phpbb
d'apres un pseudo et un pass 
-----------------------------
<?php 
session_start(); 
include("config.php"); 
///////////////////////////////////////////////
///////////////////////////////////////////////

/* recupere les var et test */ 

	// test 
	if ( empty ($_POST['pseudo'])) 
	{
	echo "pas de pseudo renseigne" ; 
	exit(); 
	}
	if ( empty ($_POST['pass'])) 
	{
	echo "pas de pass renseigne" ; 
	exit(); 
	}
	// recup 
	$pseudo = $_POST['pseudo']; 
	$pass = $_POST['pass']; 
	
	// crypt le mot de pass en md5
	$pass_crypt = md5($pass); 
	
/* verifie dans phpbb_users */ 
	$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM phpbb_users WHERE username='$pseudo' AND user_password='$pass_crypt'  ") or die("erreur dans le requete sql ") ; // compte 
	$donnees = mysql_fetch_array($retour);
	$nbr = $donnees['nbre_entrees'];
	if ( $nbr == 0 ) 
	{
	echo "erreur dans votre identification" ; 
	exit(); 
	}
	if ( $nbr != 0 ) // c'est ok on accorde les droits 
	{
	echo "authentification reussite" ; 
	$_SESSION['log'] = true ; 
	$_SESSION['pseudo'] = $pseudo ; 
	
	// cherche l'id du pseudo 
	$reponse = mysql_query("SELECT * FROM phpbb_users   WHERE  username='$pseudo'  ") ; 
		while ($donnees = mysql_fetch_array($reponse) )
		{
		$id = $donnees['user_id']; 
		}
	
	/* creation du cookie conforme a phpbb */
		
		// chope le nom du cookie 
		$reponse = mysql_query("SELECT * FROM phpbb_config   WHERE  config_name='cookie_name'  ") ; 
		while ($donnees = mysql_fetch_array($reponse) )
		{
		$nom_cookie = $donnees['config_value']; 
		}
		
		// sa duree 
		$reponse = mysql_query("SELECT * FROM phpbb_config   WHERE  config_name='session_length'  ") ; 
		while ($donnees = mysql_fetch_array($reponse) )
		{
		$dure_cookie = $donnees['config_value']; 
		}
		
		// on ajoute le grain de sel 
		$cookie1 = $nom_cookie."_sid" ; 
		$cookie2 = $nom_cookie."_data" ; 
		
		// on serialise les donnees pour le 2eme cookie 
		$donnees = array(); 
		$donnees['autologinid'] = $pass_crypt ; 
		$donnees['userid'] = $id ; 
		$v = serialize($donnees); 
		
		// creation de la commande de cookie
		setcookie($cookie1,session_id(),time()+$dure_cookie,"/");
	
		// 2eme cookie 
		setcookie($cookie2,$v,time()+$dure_cookie,"/");

	
	// redirige 
	header("location:zone/"); 
	}
?>
------------------------------

Conclusion :


voila je n'avais jamais vu de source semblable sur le net alors j'ai codé
pour le site http://webown.free.fr

Pour des remarques/questions allez sur : http://iow4.net/forum

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.