我有一个PHP,不存储任何cookie的机器人可以访问它。可以从_POST变量恢复会话 ID。我的理解是,从会话 ID 恢复会话后,在这种情况下,$_SESSION 无法访问会话变量,因为 cookie 被禁用。
确切地说,会话是由用户启动的。此 PHP 页面将仅接收来自机器人的一个 POST 请求 - 用户的会话 ID 作为参数传递。我需要"恢复"此会话并检查用户会话中存储的内容。
机器人会丢弃发送给它的任何信息。
还有其他方法可以检索会话变量吗?
是的,有办法。利用 INI 设置session.use_trans_sid
(将其设置为"1")会将包含会话 ID 的查询字符串附加到所有输出的 URL,从而消除对 cookie 的需求。
许多人建议使用 session_id(...) - 由于某种原因,这在我的设置上不起作用。相反,我的解决方案是读取会话文件并使用 session_decode(...) 填充 $_SESSION 变量,然后通过 $_SESSION 访问变量。