2012-08-07 29 views
3

我最近面臨的一個意外問題是,我在我的一個網站上配置了Sagepay支付網關,它的工作非常直。但是,當我移動整個網站到另一臺服務器,我不得不使用它的IP地址來測試網站:使用IP地址瀏覽網站時PHP會話可能會過期嗎?

http://xxx.xxx.xxx.xxx/mywebsite/

現在,當我們通過Sagepay支付網關完成對網站的在線支付,

  1. 它返回到現場
  2. 獲取從會話
  3. 客戶詳細信息
  4. 發送電子郵件到t他的顧客

因此,現在(第三步),當它從會話中獲取客戶電子郵件時,它沒有得到任何價值。我試圖轉儲$_SESSION陣列,它是空白的。

所以我的問題是:Sessions通過IP地址瀏覽網站時可能會過期嗎?

回答

0

是......會話可以定期清除,如果它們落在限制範圍內......請閱讀此處......還提示如何修改設置以滿足您的需求:http://php.net/manual/en/function.session-cache-expire.php它詳細介紹了PHP如何清理會話這很可能是發生了什麼事情。如果您使用的是不同的域(或服務器的IP地址)來訪問服務器,

+0

好的,但我的問題是,它是否過期,因爲我使用IP地址瀏覽網站? – aslamdoctor 2012-08-07 10:11:48

+0

nope ...只是PHP清理它的會話...通過IP訪問應該沒有區別。 – Brian 2012-08-07 11:53:30

0

會話可能過期的會話cookie(PHPSESSID)可能需要在域屬性綁定到一個域(相關:setcookie()RFC 2109中, session_set_cookie_params()函數)。

爲了防止會話過期,您可能希望採取另一種方法,實施一種方法,如果您從另一個域/ IP訪問該站點,則仍然可以登錄並「連接」您之前的會話。 This question and answer可能是一個很好的閱讀,因爲它描述了各種身份驗證方法,需要和陷阱。

相關問題