0

我使用session_start () 开始一个会话,我可以将数据保存在$_SESSION. 当我尝试从会话中检索数据时,在回帖中,$_SESSION数据为 NULL。我正在发布会话 id,然后调用session_id (passsedSessionID),然后调用,session_start()但是该会话中的数据已经消失。假设要写入session_save_path的会话文件不存在。

我猜这与未写入会话文件有关。

更新发现了问题。我没有授予 php 进程对存储会话数据的目录的写入权限。:-/

4

2 回答 2

0

只要$_SESSION全局变量只返回当前用户会话的数据,就不需要session_id每次都传递。正如@Brian 在评论中提到的那样,不要忘记确保它session_start()位于代码的顶部,然后不要关心会话标识。

好的,我希望这对你有意义。在不同的浏览器中尝试此代码并刷新页面几次:

<?php
session_start();
echo session_id();
?>

这将返回会话 ID,并且在不同的浏览器中它们会有所不同,但在页面刷新后它们将保持不变。

于 2012-10-15T13:19:36.907 回答
0

我猜你正在以session 不同的方式解释用法。您只需要session_start()在每个页面的开头调用,这将同步页面之间的数据。

page1.php

session_start()
-- store some session data
-- Some form with action page2.php
-- Submit button

page2.php

session_start()
-- fetch the session data
-- fetch the form data

请看一下这个coredogs 教程

希望这可以帮助

于 2012-10-15T14:07:44.537 回答