我尽可能简单地简化了我的脚本,以说明我上面描述的麻烦。
这是testPage1.php
<?php
session_start();
$_SESSION['loggedIn'] = true;
?>
<form action="testPage2.php" method="post">
<input type="submit" value="See vars" />
</form>
这是testPage2.php
<?php
echo 'session variables:<br />';
Print_r ($_SESSION);
?>
浏览器中testPage2的预期输出为:
会话变量:
数组([loggedIn] =&gt; 1)
相反,我只是得到了
会话变量:
检查/var/log/apache2/error.log显示
[Mon Jul 08 22:00:25 2013] [错误] [客户端155.70.23.19] PHP注意:未定义的变量:第3行的/var/www/euler/testPage2.php中的_SESSION,referer:{{3 }}
任何想法?
答案 0 :(得分:3)
testPage2.php缺少session_start();添加
session_start();
位于testPage2.php
的顶部答案 1 :(得分:2)
来自PHP Manual:
要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start()。
因此,在您将使用会话的每个PHP脚本的最顶部包含session_start()
。