Раньше я создавал веб-приложения, использующие сеанс phpBB и пользовательские данные. Обычный ход - использовать такой код:
define('IN_PHPBB', true);
//replace $phpbb_root_path with path to your forum
$phpbb_root_path = '../forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
Однако, добавляя common.php, я привожу кучу других методов, которые работают с другими методами, которые я установил.
В моем примере я запускаю приложение с помощью CodeIgniter, в котором уже есть метод «перенаправления». Этот вопрос должен относиться ко всем, у кого есть встроенные методы, которые могут работать с методами phpBB.
По сути, все, что мне нужно сделать, это:
$user->data[username] == AnonymousМогу ли я взять массив $user->data и как-нибудь сохранить его в своем сеансе? Есть ли у кого-нибудь идеи по этому поводу? Заранее спасибо!






Вы столкнулись с основной причиной, по которой я ненавижу фреймворки. Вы никогда не знаете, что именно включено. Особенно, когда код не объектно-ориентирован. (гораздо лучше, если ваша функция принадлежит объектам, а не свободно перемещается в глобальном пространстве.)
Предполагая, что в вашем коде уже есть определенный обработчик сеанса, ничто не мешает вам использовать обычные команды сеанса.
например: $ _SESSION ['user_data_array'] = $ user-> данные;
затем позже с использованием данных сеанса
$ data = $ _SESSION ['массив_данных_пользователя'];
Когда написан обработчик сеанса, он заменяет текущий обработчик сеанса. (Я предполагаю, что это было сделано для того, чтобы сеанс сохранялся в базе данных, а не на сервере.)
Если он не был заменен, вы все равно можете использовать обработчик сеанса PHP по умолчанию. Всегда помните, что детали сеанса сохраняются в папке на текущем веб-сервере. Таким образом, если ваше приложение выполняется на нескольких серверах, данные сеанса будут недоступны, если пользователь обслуживается другим сервером при последующем посещении. (отсюда необходимость написания обработчиков сеансов для сохранения данных сеанса между несколькими серверами.)
Я попробовал это. Мне удалось сохранить массив данных $ user-> в _session, но CI перезаписывает его. когда я пытаюсь загрузить его в CI, я получаю «Неопределенная переменная: _SESSION»
phpBB изменил алгоритм проверки пароля, хранящегося в базе данных, с версии 2.x на 3.0. (Раньше это была просто функция MD5.) Но если вы можете найти их URL-адрес полу-SDK (его нет под рукой), там есть сообщения о том, как использовать их проверку пользователя на более высоком уровне абстракции, чем вы описываете .
Это тот случай, когда, если вы собираетесь задействовать их ресурс, вам нужно сделать это по-своему (что в данном случае более явное, чем раньше).
Я согласен, что это рискованное решение в любом случае; особенно потому, что phpBB не имеет особо выдающихся результатов по качеству дизайна.
вставку этого массива в массив сеанса нужно будет сделать внутри phpBB, правильно? ... поскольку у меня нет доступа к объекту $ user, если я не загружу все включаемые файлы из phpBB