3

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

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

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

  1. 它返回到站点
  2. 从 Session 中获取客户详细信息
  3. 向客户发送电子邮件

所以现在(在第三步中),当它从会话中获取客户电子邮件时,它没有得到任何价值。我试图转储$_SESSION数组,它是空白的。

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

4

2 回答 2

0

是的...如果会话在限制范围内,可以定期清除...阅读此处...还提供有关如何修改设置以满足您的需要的提示:http: //php.net/manual/en/ function.session-cache-expire.php它详细说明了 PHP 如何清理最有可能发生的会话。

于 2012-08-07T10:07:38.890 回答
0

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

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

于 2012-08-07T10:15:23.950 回答