Приложение, использующее данные сеанса PhpBB - не может использовать сокращенный код

Раньше я создавал веб-приложения, использующие сеанс 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.

По сути, все, что мне нужно сделать, это:

  1. Убедитесь, что пользователь вошел в систему $user->data[username] == Anonymous
  2. Используйте данные из $ user-> data, такие как идентификатор пользователя, экранное имя и т. д.

Могу ли я взять массив $user->data и как-нибудь сохранить его в своем сеансе? Есть ли у кого-нибудь идеи по этому поводу? Заранее спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
1 854
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы столкнулись с основной причиной, по которой я ненавижу фреймворки. Вы никогда не знаете, что именно включено. Особенно, когда код не объектно-ориентирован. (гораздо лучше, если ваша функция принадлежит объектам, а не свободно перемещается в глобальном пространстве.)

Предполагая, что в вашем коде уже есть определенный обработчик сеанса, ничто не мешает вам использовать обычные команды сеанса.

например: $ _SESSION ['user_data_array'] = $ user-> данные;

затем позже с использованием данных сеанса

$ data = $ _SESSION ['массив_данных_пользователя'];

Когда написан обработчик сеанса, он заменяет текущий обработчик сеанса. (Я предполагаю, что это было сделано для того, чтобы сеанс сохранялся в базе данных, а не на сервере.)

Если он не был заменен, вы все равно можете использовать обработчик сеанса PHP по умолчанию. Всегда помните, что детали сеанса сохраняются в папке на текущем веб-сервере. Таким образом, если ваше приложение выполняется на нескольких серверах, данные сеанса будут недоступны, если пользователь обслуживается другим сервером при последующем посещении. (отсюда необходимость написания обработчиков сеансов для сохранения данных сеанса между несколькими серверами.)

вставку этого массива в массив сеанса нужно будет сделать внутри phpBB, правильно? ... поскольку у меня нет доступа к объекту $ user, если я не загружу все включаемые файлы из phpBB

jmccartie 19.11.2008 04:27

Я попробовал это. Мне удалось сохранить массив данных $ user-> в _session, но CI перезаписывает его. когда я пытаюсь загрузить его в CI, я получаю «Неопределенная переменная: _SESSION»

jmccartie 15.01.2009 03:10

phpBB изменил алгоритм проверки пароля, хранящегося в базе данных, с версии 2.x на 3.0. (Раньше это была просто функция MD5.) Но если вы можете найти их URL-адрес полу-SDK (его нет под рукой), там есть сообщения о том, как использовать их проверку пользователя на более высоком уровне абстракции, чем вы описываете .

Это тот случай, когда, если вы собираетесь задействовать их ресурс, вам нужно сделать это по-своему (что в данном случае более явное, чем раньше).

Я согласен, что это рискованное решение в любом случае; особенно потому, что phpBB не имеет особо выдающихся результатов по качеству дизайна.

Другие вопросы по теме