Как я могу напрямую войти в phpBB3 с моего сайта? - PullRequest
0 голосов
/ 23 апреля 2010

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

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

Ответы [ 2 ]

1 голос
/ 23 апреля 2010

Как вы делали интеграцию? Посмотрите на http://www.phpbb.com/kb/article/phpbb3-sessions-integration/ для помощи по этому вопросу.

0 голосов
/ 22 октября 2014

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

Очевидно, что вам, возможно, придется немного изменить это, я провожу много проверок, прежде чем он сможет их зарегистрировать или войти в систему. Надеюсь, это поможет, и если кто-то увидит, что я что-то не так делаю, пожалуйста, дайте мне знать.

...