使用IP地址浏览网站时,PHP会话是否可能过期?

时间:2012-08-07 10:03:55

标签: php session session-cookies sagepay

我最近遇到的一个意想不到的问题是我在我的一个网站上配置了Sagepay支付网关并且工作非常顺利。但当我将整个站点移动到另一台服务器时,我不得不使用其IP地址测试该站点:

  

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

现在,当我们通过Sagepay支付网关在网站上完成在线支付时,

  1. 返回网站
  2. 从会话
  3. 获取客户详细信息
  4. 向客户发送电子邮件
  5. 现在(第3步),当它从会话中获取客户电子邮件时,它没有获得任何价值。我试图转储$_SESSION数组,它是空白的。

    所以我的问题是:Sessions在通过IP地址浏览网站时是否有可能过期?

2 个答案:

答案 0 :(得分:0)

是的...会话可以定期清除,如果它们在限制范围内...在这里阅读...也提示如何修改设置以满足您的需求:http://php.net/manual/en/function.session-cache-expire.php它详细说明了PHP的方式清理最有可能发生的事情。

答案 1 :(得分:0)

如果您使用不同的域(或服务器IP地址)来访问服务器,则会话可能会过期,因为会话cookie(PHPSESSID)可能会将域属性绑定到域(相关:{{ 3}},setcookie()RFC 2109函数。)

为了防止会话过期,您可能希望采用另一种方法,实现一种方法,如果您从另一个域/ IP访问该站点,您仍然可以登录并“附加到”上一个会话。 session_set_cookie_params()可能是一个很好的阅读,因为它描述了各种身份验证方法,需要和陷阱。