session_start() 需要读取 $_SESSION

Posted

技术标签:

【中文标题】session_start() 需要读取 $_SESSION【英文标题】:session_start() required for reading $_SESSION 【发布时间】:2013-05-24 06:19:35 【问题描述】:

假设我们有 index.php,它调用 session_start() 并填充 $_SESSION 数据。 当用户在网页上时,他们单击一个按钮,然后向 ajax.php 发起 AJAX 查询。 ajax.php 没有调用session_start(),但它正在成功读取$_SESSION 中的数据。

这是预期的行为吗?

【问题讨论】:

我没想到,但看起来 Niles 有个主意。 如果您有一个包含填充数据的$_SESSION,则会话已由您或其他代码/配置启动。 ajax 请求只是像 $_REQUEST 方法这样的请求,它们不包含和合并代码,所以行为是出乎意料的,但似乎有办法做到这一点,在第一个答案中提到。老实说,我不知道这个指令 【参考方案1】:

如果您查看phpinfo(); 调用的输出,您可能会注意到session.auto_start 配置变量设置为1。

见documentation for further reference。除非设置了这个标志,否则它绝对不是预期的行为,并且您可能在某处包含显式调用 session_start() 的代码。

【讨论】:

d'哦,是的,正在加载 session_start() ;)

以上是关于session_start() 需要读取 $_SESSION的主要内容,如果未能解决你的问题,请参考以下文章

session和cookie

PHP会话控制之session_start

session

在同一页面按顺序执行更多提交

[GWCTF 2019]枯燥的抽奖

PHP session_set_cookie_params 中断 php session_start() 函数和 $_SESSION 变量