PHPSESSID仅在一个互联网连接下的每个请求中更改


PHPSESSID changes in every request ONLY under one internet connection

在互联网上进行了一天的广泛研究后,我仍然无法弄清楚这一点。现在的情况是cookie中的PHPSSID没有从一个页面持续到另一个页面。

这种情况发生在特定地点的一个互联网连接下的计算机上。我测试了其他地方的几台机器,一切都很好。我已经检查了session_start,子域没有问题。

我希望有人能帮我。

要检查的内容:

  1. 这些计算机上的时间(和时区!)设置正确吗?如果设置不正确,他们可能会过早地(甚至可能立即)丢弃会话cookie。

  2. 电脑上是否安装了一些奇怪的安全或"隐私"软件?如果可能,请在这些机器上的另一个浏览器下检查问题是否仍然存在。

  3. 这些计算机有任何网络代理吗?如果是这样的话,它可能会干扰饼干。

若要使用基于cookie的会话,必须先调用session_start()将任何内容输出到浏览器。-PHP文档

此外,您可能需要检查php.ini是否已正确配置以存储会话cookie。或者在会话启动前每次加载页面时调用session_set_cookie_params(),以便正确配置会话cookie的文件夹、域、持续时间等。

设置php.ini文件中定义的cookie参数。这样做的效果函数只持续脚本的持续时间。因此,您需要为每个请求及之前调用session_set_cookie_params()session_start()被调用。

此函数更新相应PHP的运行时ini值ini配置密钥,可以使用ini_get()检索。

在我用自己的计算机验证这是在这个地方发生的之后,我意识到当我输入一些URL时,它们在中间发生了某种变化,例如http://www.medicmanager.com.ar/cloud/santiago/charisma/js/jquery.cookie.js已更改为http://www.medicmanager.com.ar/cloud/santiago/charisma/js/jquery.ckiooe.js,当然给出了404。

我把ISP的连接改成了另一个,它开始工作了,所以我打电话给ISP,他们告诉我他们已经解决这个问题两天了,更改了URL,并破坏了cookie。

谢谢大家的回答,我把这个留在这里,以防有人有疑问。是的,它可能是你的ISP,非常奇怪。

将cookie生存期设置为0意味着它将立即过期,请尝试将其设置为另一个值,例如2592000,即30天(秒)。编辑:我指的是time() + 2592000