PHP会话未为单个用户保存


PHP session not saved for one user

我有一个奇怪的问题。我有一个网页,在主页上设置会话变量为每个用户访问,然后在下一页,如果会话变量设置,一些东西显示,和其他一些不是。我正在设置的变量只是一个"1"。

 $_SESSION['user_id'] = $user_id;

一切都很简单,一切都很好,但是我有一个用户,服务器没有保存会话变量。据我所知只有一个人。是什么导致了这种行为?他使用的是mac电脑,但在其他mac电脑上,网站运行得很好。

谢谢。

当您调用session_start()时,PHP将仅使用PHPSESSID变量集设置cookie。该变量用于用服务器上的会话数据标识客户机浏览器。如果你的用户已经禁用了cookie,那么不通过GET或POST在每个请求中来回传递PHPSESSID就不可能使用会话。

HTTP是一种无状态协议。如果会话只在服务器端,它如何能够区分用户?

[HTTP是一个无状态协议意味着:HTTP请求从服务器响应,它忘记是谁发送的请求,它来自哪里。]

这就是cookie存储会话id的原因。

换句话说,如果用户禁用cookie,他就不允许PHP为自己设置会话。