0

如果我使用 php 开始会话,用户可以看到带有 cookie 的会话变量吗?

我想在会话中保留一些用户信息设置,但我不想让用户知道它们。

谢谢。

4

4 回答 4

3

会话数据存储在服务器上,而不是 cookie 中。cookie 仅存储一个 ID 以允许服务器查找正确的数据。

于 2013-01-12T17:41:56.443 回答
1

不会。会话数据存储在服务器上,相应的session id将存储在Cookie

于 2013-01-12T17:43:35.987 回答
0

不,SESSION 变量位于服务器端,因此从客户端的角度来看,它们无法更改它们。这是我们使用 Sessions 而不是 cookie 的主要原因之一。

有关 SESSION 变量的更多信息可以从PHP.net的官方文档中找到

会话是根据唯一会话 ID 为单个用户存储数据的简单方法。这可用于在页面请求之间保持状态信息。会话 ID 通常通过会话 cookie 发送到浏览器,并且 ID 用于检索现有的会话数据。ID 或会话 cookie 的缺失让 PHP 知道要创建一个新会话,并生成一个新的会话 ID。

默认情况下,PHP 使用由 session.save_handler 设置的内部文件保存处理程序。这会将会话数据保存在服务器上 session.save_path 配置指令指定的位置。

可以使用 session_start() 函数手动启动会话。如果 session.auto_start 指令设置为 1,会话将在请求启动时自动启动。

会话通常在 PHP 完成执行脚本时自动关闭,但可以使用 session_write_close() 函数手动关闭。

我仍然将其留在这里只是因为我认为这是合法信息,但我同意如果可用,请首先参考官方文档。如果有人可以证明以下陈述是错误的,我将删除它。来自W3schools

PHP 会话通过允许您将用户信息存储在服务器上供以后使用(即用户名、购物项目等)来解决这个问题。但是,会话信息是临时的,将在用户离开网站后被删除。如果您需要永久存储,您可能希望将数据存储在数据库中。

于 2013-01-12T17:42:19.240 回答
0

那么用户可以很容易地获得会话是否已创建或网站是否有会话的信息。但是用户永远无法知道会话中设置的变量。

于 2013-01-12T17:48:09.647 回答