我最近遇到的一个意想不到的问题是我在我的一个网站上配置了Sagepay支付网关并且工作非常顺利。但当我将整个站点移动到另一台服务器时,我不得不使用其IP地址测试该站点:
现在,当我们通过Sagepay支付网关在网站上完成在线支付时,
现在(第3步),当它从会话中获取客户电子邮件时,它没有获得任何价值。我试图转储$_SESSION
数组,它是空白的。
所以我的问题是:Sessions在通过IP地址浏览网站时是否有可能过期?
答案 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()
可能是一个很好的阅读,因为它描述了各种身份验证方法,需要和陷阱。