phpbb сессия через папки - PullRequest
1 голос
/ 16 апреля 2011

Я использую phpBB (2.0.22) на веб-сайте, расположенном по адресу myWebSite.com/forum

Я создаю некоторые другие страницы в myWebSite.com/otherForders

ЧтоЯ хочу, чтобы проверить, вошли ли люди в myWebSite.com/forum, когда они находятся в myWebSite.com/otherForders

Интересно, если это возможно.

Я пробовал session_start(); print_r($_SESSION);в myWebSite.com/otherForders/index.php и все, что я получаю, это Array ( ) (пустой массив).

У кого-нибудь есть решение?Спасибо.

Ответы [ 2 ]

1 голос
/ 16 апреля 2011

Вы должны интегрировать вашу доску с вашим кодом

Вот образец ::

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

Тогда используйте

$ userdata ['username'], $ userdata ['user_id'] и т. Д. $ userdata имеет массив со значениями users_table для вашей доски объявлений для зарегистрированного пользователя.

1 голос
/ 16 апреля 2011

Переменная сеанса не будет доступна таким образом. Сеансовый cookie вашего phpbb хранится в myWebSite.com/forum, и когда вы посещаете страницы из каталога forum, то есть (otherForders), сеанс myWebSite.com/forum там не будет доступен, и будет отображаться новый сеанс, который, очевидно, является пустым массивом. пока вы не назначите некоторые значения и сессионный cookie для этого сеанса не будет храниться в myWebSite.com/otherForders.

Вы должны указать php сохранить сеанс в корневом домене, который равен myWebSite.com, чтобы сеанс был доступен во всех других каталогах.

Вы можете сделать это с ini_set.

Вы должны поставить ini_set до вызова session_start(). Я не знаю о phpbb, если они дают какой-либо интерфейс администратора для изменения значения домена cookie сеанса. Вы должны проверить, предоставляет ли phpbb это.

ini_set('session.cookie_domain','.myWebSite.com');

Вы также можете попробовать

session_set_cookie_params(0, '/', '.myWebSite.com');
session_start();
...