2010-04-23 6 views
0

Я включил phpbb3 в свой сайт. Когда пользователь запустится на мой сайт, появится вкладка, называемая форумом. Если он нажимает на форум, он перейдет на страницу, где запрашивает имя пользователя и пароль для входа в систему. Но я хочу, когда пользователь нажимает на форум, тогда он должен напрямую перейти на форум с данными своей учетной записи, не запустив снова.Как я могу войти в phpBB3 с моего сайта?

Пожалуйста, помогите мне ......

+1

Вы вообще используете CMS? Обычно такого рода вещи требуют синхронизированных пользовательских таблиц между phpBB и настройкой вашего основного сайта. Например, я слышал о плагинах для Joomla, которые обрабатывают это для вас. Если мы узнаем больше о вашей настройке, мы сможем указать вам в правильном направлении. –

+0

Вы также можете использовать jquery/ajax для входа в систему без выхода пользователя из страницы, когда успех возвращается из вызова ajax, а затем обновляет текущую страницу. Я использую то же самое для своей facebook для phpbb mod, которую я разрабатываю –

ответ

0

Я на самом деле сделал это точно так же, пользователь зарегистрировался на моем сайте и в то же время автоматически создавал бы их учетную запись 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 и я знаю.