2011-04-16 57 views
1

我使用的phpBB(2.0.22)在一個網站上,位於myWebSite.com/forumPHPBB會議

我創造了一些myWebSite.com/otherForders其他頁面

什麼我想要的是,檢查當他們在myWebSite.com/otherForders中時,是否登錄到myWebSite.com/forum的人是否有可能想知道是否有可能。

我試過session_start(); print_r($_SESSION);在myWebSite.com/otherForders/index.php,我得到的全部是Array ()(一個空的數組)。

任何人都有解決方案嗎? 謝謝。

回答

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的值的數組,用於登錄用戶的電路板。

+0

謝謝@Alex Emilov,這往往工作有點,但我得到[用戶名] =>匿名 – 2011-04-16 08:20:42

+0

嗯,我的代碼主要是phpBB3,我不知道這種整合,我下載了一個新的副本phpBB2,看着一些頁面,它似乎是代碼。也許我們錯過了認證的東西。你確定,你已經登錄?我將安裝2.0.22並再次發佈。 – 2011-04-16 08:29:49

+0

我已經安裝了它並進行了測試,它似乎可以這樣工作。 首先你確定,你有正確的文件路徑參見$ phpbb_root_path ='./'; (你可能有error_reporting 0,因爲我們沒有結果),第二個問題是你需要在SID參數url.Copy你的sid鏈接從你的論壇索引和粘貼在新文件的網址。 index.php?sid = a90814a1fb6f8ce49f1bb6edde9f839b => test.php?sid = a90814a1fb6f8ce49f1bb6edde9f839b – 2011-04-16 08:35:01

1

會話變量不會以這種方式訪問​​。您的phpbb的會話cookie存儲在myWebSite.com/forum,當您訪問forum目錄中的頁面,即(otherForders)時,myWebSite.com/forum的會話將不可用,並且會話將被注視,這顯然是一個空白數組,直到您分配一些值和會話cookie此會話存儲在myWebSite.com/otherForders

你必須告訴php將會話保存在根域myWebSite.com上,這樣會話將在所有其他目錄中可用。

你可以用ini_set做到這一點。

您必須在調用session_start()之前放置ini_set。如果他們給出任何管理界面來更改會話cookie域值,我不知道phpbb。你應該檢查phpbb是否提供了這個。

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

,你也可以嘗試

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

謝謝@Shakti Singh,在哪裏使用'ini_set('session.cookie_domain','。myWebSite.com');'部分請問? – 2011-04-16 08:03:25

+0

你應該在'session_start()'之前調用它' – 2011-04-16 08:07:56

+0

@Jeremy:因爲你的phpbb會話仍然在域名'mywebsite.com/forum'上。這也應該在'mywebsite.com' – 2011-04-16 08:14:07