Apache-2.2

如果網站失去使用者會話,去哪裡看?

  • February 18, 2012

幾天前突然我注意到,在我的網站中,當我完成一個地方的表單(例如,POST)然後我進行重定向以查看該地方時,使用者會話失去了。如果我刷新該頁面,我會再次連接。它也以另一種形式+重定向發生。

這只發生在生產伺服器上。在暫存(與生產相同的配置)和本地工作正常。

我在生產中的堆棧是 Apache、memcache(會話)、PHP、Symfony1.4、MySQL。

關於我應該在哪裡尋找的任何想法?阿帕奇,什麼?記憶體記憶體?

謝謝!

編輯

  • 不是 suhosin,因為我沒有啟用擴展
  • 我只發生在 POST 和 Header 重定向之後

我發現了錯誤,與此無關。以下程式碼破壞了它。我剛剛評論了它。仍然不知道為什麼,但至少錯誤已經解決了。我得問問symfony的傢伙。

// clear cache
$cacheDriver = $this->getTable()->getAttribute(Doctrine::ATTR_RESULT_CACHE);
$cacheDriver->deleteByPrefix('tour.'.$this->id);

我猜兩件事之一:

  1. session_start()缺少一個
  2. 您沒有使用會話 cookie,並且請求變數在執行時失去了header('Location', ...)

我會在面板中使用 Firebug 及其Persist選項來檢查是否所有請求都帶有cookie 或 request 變數。假設確實如此,我會檢查標題的目標頁面上是否缺少。Net``PHPSESSID``session_start()``Location

引用自:https://serverfault.com/questions/360487