У меня есть форум на phpBB. Теперь я хотел бы сделать что-то подобное из исходного кода:
логин("пользователь", "пароль")
Как это сделать в phpBB?
У меня есть форум на phpBB. Теперь я хотел бы сделать что-то подобное из исходного кода:
логин("пользователь", "пароль")
Как это сделать в phpBB?
Вам понадобится скрипт, который интегрируется с фреймворком phpBB. Что-то вроде этого должно работать.
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
?>
Затем просмотрите $auth->login( ) (пример использования функции login_box()
в /includes/functions.php
). Упрощенный, но неполный пример:
$result = $auth->login($username, $password); // There are more params but they're optional
if ($result['status'] == LOGIN_SUCCESS)
{
// Logged in
}
else
{
// Something went wrong
}
Сначала вам нужно загрузиться для phpBB:
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './phpBB/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
Вам придется заменить часть ./phpBB/
на относительный путь к форуму.
Чтобы пользователь вошел в систему, вы должны сделать:
$result = $user->session_create($user_id, $admin, $autologin, $viewonline);
$admin
, вероятно, должно быть false
, $autologin
и $viewonline
в зависимости от того, что вы хотите.
ПРИМЕЧАНИЕ. Вызов session_create
установит файл cookie сеанса для пользователя, поэтому убедитесь, что вы вызываете его только тогда, когда текущий запрос действительно обслуживает этого пользователя.
$user_id
.
- person nickb; 10.11.2011
$user->session_kill(); $user->session_create($newUserID, false, true); $auth->acl($user->data);
Я использую это, чтобы переключиться на анонимного пользователя (userid = 1) до того, как мой скрипт выполнит автоматическую публикацию, а затем переключиться обратно на исходного пользователя (чей идентификатор пользователя я сохранил до переключения).
- person Magnus W; 27.09.2015
В вашем PHP-скрипте, сканирующем HTML, необходимо:
Возможно, вам будет интересно использовать какую-нибудь уже существующую библиотеку для облегчения этого.
Например, вы можете взглянуть на Zend_Http_Client
(см. также ; часть об отправке нескольких Запросы с одним и тем же клиентом вас наверняка заинтересуют ;-))
Вы также можете ознакомиться с некоторыми другими вопросами и ответами, например: