PHP -如何在不使用cookie的情况下存储用户的偏好(移动或完整站点)


PHP - How to store user's preference (Mobile or full site) without using Cookies

我需要能够加载用户先前设置的偏好(在同一会话中,不需要在会话之间持续),如果他们想要查看网站的移动版本或完整版本。

我想通过一种无cookie的方法来实现这一点,但是我很确定在$_SESSION变量中存储的东西会写入cookie。

有更好的方法吗?

谢谢!

Xavier .

您可以为会话禁用cookie:

ini_set('session.use_cookies', 0);
ini_set('session.use_only_cookies', 0);
ini_set('session.use_trans_sid', 1);

这将强制任何客户端在他发出的每个请求中附加他的会话id以进行身份验证。(实际上你的服务器会把它附加到任何生成的链接上,所以客户端会自动包含它)

然而,这有几个缺点:

  • 当包含会话id的url被传输时,会话可以被"复制"到其他客户端。
  • 关闭浏览器并重新打开它会重置会话。
  • 导航离开你的网站可能会列出一个有效的会话id在另一个服务器的"referer"-这可能会显示在某个地方,所以任何未知的人可能会访问(可能仍然有效)会话。

首先有两种饼干。

  1. 可怕的客户端cookies
  2. 会话cookie。会话cookie只是服务器用来标识用户会话(而不是用户!)的唯一哈希集,您可以通过向站点上的每个链接添加一个带有会话编号的查询参数来实现相同的目的。

$_SESSION变量包含您在链接到用户会话的服务器上设置的变量。

可以禁用会话cookie,只使用php.ini中的查询参数