2012-08-10 38 views
0

基本上在我的網站開發服務器上,我有幾個網站項目。我遇到了一個問題,我的一個網站項目會話變量與另一個網站項目的會話變量衝突。這兩個網站項目都在同一臺服務器下。那麼在網站項目之間是否有一種很好的方法來區分變量?希望這是有道理的...最好不要讓網站會話變量混淆與其他網站在同一域下

這兩個網站都是會員類型的網站,所以我使用相同的會話變量爲網站的會員部分。

和這兩個網站都在codeigniter框架上。所以使用codeigniter,我該如何解決這個問題?

回答

0

您可以使用session_name函數(http://php.net/manual/en/function.session-name.php)給每個站點一個唯一的會話名稱。仔細閱讀有關何時設置會話名稱的注意事項(基本上在任何其他會話功能之前)。

另一種方法是使用「路徑」功能限制到您網站的路徑(http://www.php.net/manual/en/function.session-set-cookie-params.php) 。這樣,會話cookie將僅對您設置的路徑上或腳下的腳本可見。 (請確保首先刪除「root」級別的任何cookie,因爲這些cookie將可見但包含所有子目錄!)

或者,如果您使用Cookie手動執行此操作,則應將Cookie的名稱加上前綴獨特。 SetCookie('WebsiteName_','session',ID,時間,路徑等)。

0

我所做的是爲每個站點配置一個配置文件,我在每個php文件中都需要require_once。 在這個配置文件中,我指定了諸如數據庫參數(用戶,密碼等)和會話頭文件: $ config ['sess_header'] ='site1';

當我創建或查詢會話時,我使用這個sess_header,例如: $ _SESSION [$ config ['sess_header']] ['user_id'] = $ user_id;