phpbb3 Warning includes/auth/auth_.php

Phpbb3_logo

Делал недавно Ajax chat с интеграцией в phpbb3.

Клиент сказал, что ставили до этого какой-то чат, но он много ресурсов проца ел, как я понял у них было установлено впечатляющее количество расширений для phpbb3, и при подключении в используемый ими до этого чат файла common.php загружались все эти самые расширения при каждом запросе через Ajax. Жесть одним словом.

C фронтендом проблем не возникло, а вот интеграция фишек phpbb в чат заморочек довольно много доставила.

Основной задачей было определить, авторизирован ли пользователь, и какой пользователь авторизирован, получить его логин и id в базе.

Решил не использовать common.php, а написать свой упрощенный вариант (вполне возможно что дырявый ;) ).

Столкнулся с проблеммой, при подключении кода

//— грузим необходимые фенкции ядра
require($phpbb_root_path . ‘includes/acm/acm_’ . $acm_type . ‘.’ . $phpEx);
require($phpbb_root_path . ‘includes/cache.’ . $phpEx);
require($phpbb_root_path . ‘includes/template.’ . $phpEx);

require($phpbb_root_path . ‘includes/session.’ . $phpEx);
require($phpbb_root_path . ‘includes/auth.’ . $phpEx);

require($phpbb_root_path . ‘includes/functions.’ . $phpEx);
require($phpbb_root_path . ‘includes/functions_content.’ . $phpEx);

require($phpbb_root_path . ‘includes/constants.’ . $phpEx);
require($phpbb_root_path . ‘includes/db/’ . $dbms . ‘.’ . $phpEx);
require($phpbb_root_path . ‘includes/utf/utf_tools.’ . $phpEx);

//set_error_handler(defined(‘PHPBB_MSG_HANDLER’) ? PHPBB_MSG_HANDLER : ‘msg_handler’);

// Instantiate some basic classes

$user = new user();
$auth = new auth();
$template = new template();
$cache = new cache();
$db = new $sql_db();

выводилось сообщение об ошибке

Warning: session::include_once(./../includes/auth/auth_.php) [session.include-once]: failed to open stream: No such file or directory in /home/s/saintist/saintist.tmweb.ru/public_html/forum/includes/session.php on line 340

детальное изучение файла /forum/includes/session.php показало что все из-за того что метод работы с БД не указан по какой-то причине;

решение довольно тривиальное

в свой код , который подключает некоторый функционал phpbb3, добавил перед подключением классов строчку

$config=array(‘auth_method’=>»db»);

в результата получилось вот так

$config=array(‘auth_method’=>»db»);
//— грузим необходимые фенкции ядра
require($phpbb_root_path . ‘includes/acm/acm_’ . $acm_type . ‘.’ . $phpEx);
require($phpbb_root_path . ‘includes/cache.’ . $phpEx);
require($phpbb_root_path . ‘includes/template.’ . $phpEx);

require($phpbb_root_path . ‘includes/session.’ . $phpEx);
require($phpbb_root_path . ‘includes/auth.’ . $phpEx);

require($phpbb_root_path . ‘includes/functions.’ . $phpEx);
require($phpbb_root_path . ‘includes/functions_content.’ . $phpEx);

require($phpbb_root_path . ‘includes/constants.’ . $phpEx);
require($phpbb_root_path . ‘includes/db/’ . $dbms . ‘.’ . $phpEx);
require($phpbb_root_path . ‘includes/utf/utf_tools.’ . $phpEx);

//set_error_handler(defined(‘PHPBB_MSG_HANDLER’) ? PHPBB_MSG_HANDLER : ‘msg_handler’);

// Instantiate some basic classes

$user = new user();
$auth = new auth();
$template = new template();
$cache = new cache();
$db = new $sql_db();

// Connect to DB

$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined(‘PHPBB_DB_NEW_LINK’) ? PHPBB_DB_NEW_LINK : false);

unset($dbpasswd);

$user->session_begin();
$auth->acl($user->data);

и все заработало

но это вариант на скорую руку, можно все красивее сделать, с автоматическим определением нужного параметра

что я и сделал ;) немного позже

Тэги: ,

  • Интеграция авторизации phpbb3
  • anonymous в phpbb3
  • phpBB3 Внешняя авторизация
  • Оставить комментарий