par
slim-toc » 20 mai 2008, 23:24
Rebonjour,
Alors, après de longues recherches j'ai quand même trouvé une solution que je post pour ceux qui aurait le même problème.
J'ai réussi à dénicher ces 2 scripts permettant de gérer les inscriptions et les login pour phpBB3 depuis des scripts externes. Après modification pour mon cas voilà ce que ça donne.
Pour l'inscription, après l'insertion dans mes tables de gestion de membre j'ajoute:
Code : Tout sélectionner
define('IN_PHPBB', true);
global $phpbb_root_path;
global $phpEx;
global $db;
global $config;
global $user;
global $auth;
global $cache;
global $template;
# your php extension
$phpEx = substr(strrchr(__FILE__, '.'), 1);
$phpbb_root_path = './phpBB3/';
/* includes all the libraries etc. required */
require($phpbb_root_path ."common.php");
$user->session_begin();
$auth->acl($user->data);
/* the file with the actual goodies */
require($phpbb_root_path ."includes/functions_user.php");
$username = $loginMembre;
$password = $passwd;
$email = $eMailPriveMembre;
$user_row = array(
'username' => $username,
'user_password' => md5($password),
'user_email' => $email,
'group_id' => 2, #Registered users group
'user_timezone' => 0,
'user_dst' => 1,
'user_lang' => 'fr',
'user_type' => 0,
'user_actkey' => '',
'user_dateformat' => 'D M d, Y g:i a',
'user_style' => 1,
'user_regdate' => time(),
);
/* Now Register user */
$phpbb_user_id = user_add($user_row);
Puis lors du login, après avoir créer mes propres variables de session je rajoute:
Code : Tout sélectionner
define('IN_PHPBB', true);
global $phpbb_root_path;
global $phpEx;
global $db;
global $config;
global $user;
global $auth;
global $cache;
global $template;
$phpbb_root_path = './phpBB3/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path ."common." . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
if($user->data['is_registered'])
{
//User is already logged in
echo 'User is already logged in';
}
else
{
$username = $loginMembre;
$password = $passwdMembre;
$result = $auth->login($username, $password);
if ($result['status'] == LOGIN_SUCCESS)
{
//User was successfully logged into phpBB
echo 'User was successfully logged into phpBB';
}
else
{
//User's login failed
echo 'User\'s login failed';
}
}
Ainsi, autant l'inscription que le login fonctionne correctement sur le forum et de façon complètement transparente. Du coup, un seul formulaire d'inscription et de login.
Voilà! J'espère que cela servira à quelqu'un. Ce n'est pas compliqué mais l'info à été assez dure à trouver. Alors autant la remettre ici ;-)
En tout cas, merci Victor d'avoir pris le temps de me donner des pistes à suivre.
Rebonjour,
Alors, après de longues recherches j'ai quand même trouvé une solution que je post pour ceux qui aurait le même problème.
J'ai réussi à dénicher ces 2 scripts permettant de gérer les inscriptions et les login pour phpBB3 depuis des scripts externes. Après modification pour mon cas voilà ce que ça donne.
Pour l'inscription, après l'insertion dans mes tables de gestion de membre j'ajoute:
[code]define('IN_PHPBB', true);
global $phpbb_root_path;
global $phpEx;
global $db;
global $config;
global $user;
global $auth;
global $cache;
global $template;
# your php extension
$phpEx = substr(strrchr(__FILE__, '.'), 1);
$phpbb_root_path = './phpBB3/';
/* includes all the libraries etc. required */
require($phpbb_root_path ."common.php");
$user->session_begin();
$auth->acl($user->data);
/* the file with the actual goodies */
require($phpbb_root_path ."includes/functions_user.php");
$username = $loginMembre;
$password = $passwd;
$email = $eMailPriveMembre;
$user_row = array(
'username' => $username,
'user_password' => md5($password),
'user_email' => $email,
'group_id' => 2, #Registered users group
'user_timezone' => 0,
'user_dst' => 1,
'user_lang' => 'fr',
'user_type' => 0,
'user_actkey' => '',
'user_dateformat' => 'D M d, Y g:i a',
'user_style' => 1,
'user_regdate' => time(),
);
/* Now Register user */
$phpbb_user_id = user_add($user_row);
[/code]
Puis lors du login, après avoir créer mes propres variables de session je rajoute:
[code]define('IN_PHPBB', true);
global $phpbb_root_path;
global $phpEx;
global $db;
global $config;
global $user;
global $auth;
global $cache;
global $template;
$phpbb_root_path = './phpBB3/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path ."common." . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
if($user->data['is_registered'])
{
//User is already logged in
echo 'User is already logged in';
}
else
{
$username = $loginMembre;
$password = $passwdMembre;
$result = $auth->login($username, $password);
if ($result['status'] == LOGIN_SUCCESS)
{
//User was successfully logged into phpBB
echo 'User was successfully logged into phpBB';
}
else
{
//User's login failed
echo 'User\'s login failed';
}
}
[/code]
Ainsi, autant l'inscription que le login fonctionne correctement sur le forum et de façon complètement transparente. Du coup, un seul formulaire d'inscription et de login.
Voilà! J'espère que cela servira à quelqu'un. Ce n'est pas compliqué mais l'info à été assez dure à trouver. Alors autant la remettre ici ;-)
En tout cas, merci Victor d'avoir pris le temps de me donner des pistes à suivre.