强制请求中的会话 ID

发布于 2024-09-17 18:36:58 字数 229 浏览 6 评论 0原文

有谁知道为什么这行不通?

    if(isset($_POST['PHPSESSID'])) {
session_id($_POST['PHPSESSID']);
session_start();
var_dump($_SESSION);
}

var_dump($_SESSION);总是空的!应该是装满东西的吧!是否有任何设置可以防止强制使用会话 ID?自动启动未启用。

Does anyone have any thoughts about why this wouldn't work?

    if(isset($_POST['PHPSESSID'])) {
session_id($_POST['PHPSESSID']);
session_start();
var_dump($_SESSION);
}

The var_dump($_SESSION); is always empty! It should be loaded with stuff! Are there any settings that prevent forcing session IDs? Auto start is not enabled.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

飞烟轻若梦 2024-09-24 18:36:58

您发布的代码是正确的。但是,由于以下几个原因之一,您可能在会话中看不到变量:

  • $_POST['PHPSESSID'] 未设置
  • $_POST['PHPSESSID'] 包含非- 数字字符
  • $_POST['PHPSESSID'] 不是指
  • 在调用 session_id 之前调用填充的会话 ID session_start()

如果这些都不适用,我不知道问题是什么,但你为什么不尝试使用 session_name() (它是为你想要做的事情而设计的)而不是 session_id

The code you posted is correct. However, you may not be seeing variables in your session for one of several reasons:

  • $_POST['PHPSESSID'] is not set
  • $_POST['PHPSESSID'] contains non-numeric characters
  • $_POST['PHPSESSID'] does not refer to a populated session ID
  • session_start() was called before your call to session_id

If none of these apply, I don't know what the issue is, but why don't you try using session_name() (which was designed for what you're trying to do) instead of session_id?

柳若烟 2024-09-24 18:36:58

您的 $_POST['PHPSESSID'] 一定是错误的:

根据会话处理程序,会话 ID 中并非允许使用所有字符。例如,文件会话处理程序仅允许 az AZ 0-9、(逗号)和 -(减号)范围内的字符

检查其值。如果更改了会话处理程序,则必须仅使用该特定会话处理程序允许的字符。


资源:

Your $_POST['PHPSESSID'] must be wrong :

Depending on the session handler, not all characters are allowed within the session id. For example, the file session handler only allows characters in the range a-z A-Z 0-9 , (comma) and - (minus)

Check its value. If you changed the session handler, you must use only the allowed characters for this specific session handler.


Resources :

表情可笑 2024-09-24 18:36:58

会话保存路径存在问题。它设置不正确,所以我可以猜测 PHP 依赖浏览器 cookie 来创建会话,而不是会话保存路径中的文件。

There was an issue with the session save path. It wasn't set up right, so I can guess that PHP was relying on browser cookies to create the session instead of the files in the session save path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文