【发布时间】:2012-10-16 02:57:15
【问题描述】:
我使用session_start() 开始一个会话,我可以将数据保存在$_SESSION 中。在我尝试从会话中检索数据时的回帖中,$_SESSION 数据为 NULL。我正在发布会话 ID,然后调用 session_id(passsedSessionID) 然后调用 session_start() 但是该会话中的数据已经消失。假定写入session_save_path 的会话文件不存在。
我猜这与没有写入会话文件有关。
update 找出了问题所在。我没有授予 php 进程对存储会话数据的目录的写入权限。 :-/
【问题讨论】:
-
您通常不需要调用
session_id来让会话处理 POST 请求。你可能会犯一些错误,只是注意一下。 -
使用会话时,您只需要确保 session_start() 几乎位于任何将使用会话的页面的开头。无需发布 id(最好不要发布!)。
-
如果我没有传递会话 ID 并且我没有调用 session_id(passsedsessionId) 我如何知道我需要使用哪个会话?我可能有数百个用户有他们自己的会话。传递会话 ID 让我可以检索该用户的正确会话。没有?
-
@dev.e.loper NO.
$_SESSION变量从当前用户的会话返回数据。 -
会话通常由 cookie 维持,因此您不需要通过查询字符串传递它们,实际上最好不要。