我想知道PHP会话数据保存在哪里;在客户端浏览器中吗?还是在服务器上?
当我在浏览器设置中禁用cookie时,PHP无法保存会话数据,但是在中php.ini
,我可以更改会话保存路径。
会话数据是否存储在服务器或客户端浏览器上?
你用来读写的会话数据$_SESSION
存储在服务器端,通常存储在临时目录中的文本文件中。不能从外部访问它们。
将会话连接到客户端浏览器的是会话ID,它通常存储在cookie中(请参阅注释以了解该规则的例外情况)。此ID是并且应该是存储在客户端上的关于你的会话的唯一内容。
如果你在浏览器中删除cookie,则即使服务器上的文件继续存在一段时间,该会话的连接也会丢失。
该session.save_path
变量影响会话数据在服务器上的存储位置。如果你不是服务器的管理员,则通常无需更改它。
如果禁用cookie,则会话ID会附加到所有页面请求中。
@Martijn这不是会话的默认行为。这需要您完成更多的代码工作
正确,如果没有cookie,会话ID将通过URL和隐藏的表单输入传递。这是由PHP自动处理的。参见php.net/manual/en/session.idpassing.php
@Shakti不一定。
session.use_trans_sid
重写您的HTML输出,以自动添加会话ID。它只是并不总是有效,例如使用Javascript。@Shakti Singh请阅读我的评论和我提供的URL,大部分工作是由PHP完成的。