跨文件夹的phpbb会话

时间:2011-04-16 07:46:27

标签: php session phpbb

我在网站上使用phpBB(2.0.22),位于myWebSite.com/forum

我在myWebSite.com/otherForders

中创建了一些其他页面

我想要的是检查一个人在myWebSite.com/otherForders中登录myWebSite.com/forum时是否

想知道这是否可能。

我在myWebSite.com/otherForders/index.php中尝试了session_start(); print_r($_SESSION);,我得到的只是Array ( )(空数组)。

有解决方案的人吗? 感谢。

2 个答案:

答案 0 :(得分:1)

以这种方式无法访问会话变量。您的phpbb的会话Cookie存储在myWebSite.com/forum,当您访问forum目录中的页面时,(otherForders) myWebSite.com/forum的会话将无法在此处使用,新的会话将会在您为此会话分配一些值并且会话cookie存储在myWebSite.com/otherForders之前,它会显然是一个空白数组。

你必须告诉php在根域保存会话myWebSite.com,以便会话在所有其他目录中可用。

您可以使用ini_set执行此操作。

您必须在调用ini_set之前放置session_start()。如果他们提供任何管理界面来更改会话cookie域值,我不知道phpbb。您应该检查phpbb是否提供此功能。

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

您也可以尝试

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

答案 1 :(得分:1)

您应该将您的电路板与您的代码集成

这是样本::

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的值的数组,用于登录用户的电路板。