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/");
}
?>
------------------------------