2016-08-23 38 views
0

我一直有與會話現在一些日子在我的生產環境PHP混合了會議

我已經試圖找到在成噸的答案在這裏堆棧溢出的解決的問題,但似乎沒有我

  1. 用戶A登錄到工作中
  2. 用戶B登錄。現在,當你回到用戶A 他的會議是由用戶B.被覆蓋,所以我有兩個用戶「共享」的 相同會話。

旁註:

  1. 我有使用會話變量
  2. 我使用https和有效證書
  3. Cache是​​沒有問題的session_start()在每一頁的最上方,我已經嘗試設置標頭,以避免緩存

我使用PHP 5.4(我之前使用5.6和降級希望它可以解決我的問題)這是我的PHP.ini:

的session.save_path = 「/ tmp中」

session.cookie_secure = 1

session.use_cookies = 1個

session.use_only_cookies = 1

session.name = PHPSESSID

session.entropy_length = 32

session.cache_limiter =非緩存

session.cache_expire = 180

session.hash_function = SHA256

這是我的認證頁面的基本結構:

session_start(); 
... // after connection with the database I retrieve id and name 
$_SESSION['id_logado'] = $user_id; 
$_SESSION['nome_logado'] = $user_name; 

我已經仔細檢查了每一頁中的每一行代碼。沒有變量名稱$ id_logado,所以它不應該干涉。高速緩存是可能不是問題,因爲我有標題,以避免session_start後緩存。我已經聯繫bluehost尋求幫助,當然他們不知道並且在指責自己。

+0

您對您認爲是問題的描述不準確。當用戶B登錄他的信息時,將替換用戶信息。他們不是「分享」任何東西。當用戶B登錄時,您希望發生什麼不同?如果您認爲確實存在問題,請向我們展示相關代碼。 – Dave

+0

只有1個用戶應該登錄每個會話或是我的邏輯錯誤在這裏? –

+0

你能解釋一下爲什麼你認爲有一個「單身」會話?你怎麼得出這個結論,即用戶A的會話正在被替換? – Pogrindis

回答

0

我找到了解決方案。

經過進一步的投資,我注意到/ tmp文件夾只有一個會話文件,大小很大。出於某種原因,會話不會被保存到新文件中,而是被「添加」到同一個文件中。

解決方案:我在我的主驅動器中創建了一個新文件夾並授予777權限。更新我的php.ini文件以使用該文件夾而不是/ tmp,現在我有很多正確生成的會話。