Я на самом деле сделал это точно так же, пользователь зарегистрировался на моем сайте и в то же время автоматически создавал бы их учетную запись phpbb.
Вот код, я использую, чтобы зарегистрировать их (я не использую функцию phphash для паролей, я использовать хэш-функции Хэш md5 пароля фактически хэширования уже хэш пароля.):
//Register the user on the forum code
global $phpbb_root_path, $phpEx, $user, $db, $config, $cache, $template,$auth;
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './Forums/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
require('./Forums/includes/functions_user.php');
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewtopic');
$user_row = array(
'username' => $username, //REQUIRED IN FORM
'user_password' => md5($password_1), //REQUIRED IN FORM
'user_email' => $email, //REQUIRED IN FORM
'group_id' => 2,//(int) $group_id,
'user_timezone' => $timezone = date(Z)/3600,//(float) $data[tz],
'user_dst' => date(I),//$is_dst,
'user_lang' => $user->lang_name,//$data[lang],
'user_type' => USER_NORMAL,//$user_type,
'user_actkey' => '',//$user_actkey,
'user_ip' => $user->ip,
'user_regdate' => time(),
'user_inactive_reason' => 0,//$user_inactive_reason,
'user_inactive_time' => 0,//$user_inactive_time,
);
//Register user on the forum
$forum_user_id = user_add($user_row);
return "both_registered";
Затем войти их я использую это:.
//Now log them into the forum
global $phpbb_root_path, $phpEx, $user, $db, $config, $cache, $template, $auth;
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : getcwd().'/Forums/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
require(getcwd().'/Forums/includes/functions_user.php');
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
// Begin phpBB login
if(!$user->data['is_registered'])
{
$username = $username;
$password = $password;
$autologin = 1;
$result = $auth->login($username, $password, $autologin);
//print_r($result);
}
Очевидно, что вам, возможно, придется изменить вокруг немного, я много проверок, прежде чем он даже получает их регистрации или регистрации их в Надеюсь, что это помогает и если кто-нибудь увидит что-то, чего я не делаю, тогда, пожалуйста, l и я знаю.
Вы вообще используете CMS? Обычно такого рода вещи требуют синхронизированных пользовательских таблиц между phpBB и настройкой вашего основного сайта. Например, я слышал о плагинах для Joomla, которые обрабатывают это для вас. Если мы узнаем больше о вашей настройке, мы сможем указать вам в правильном направлении. –
Вы также можете использовать jquery/ajax для входа в систему без выхода пользователя из страницы, когда успех возвращается из вызова ajax, а затем обновляет текущую страницу. Я использую то же самое для своей facebook для phpbb mod, которую я разрабатываю –