【问题标题】:PHP Session variables disappearing on 'POST' [duplicate]PHP会话变量在'POST'上消失[重复]
【发布时间】:2013-07-08 22:09:39
【问题描述】:

为了说明我上面描述的问题,我尽可能简单地简化了我的脚本。

这里是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] => 1 )


相反,我只是得到
会话变量:

检查 /var/log/apache2/error.log 显示
[Mon Jul 08 22:00:25 2013] [error] [client 155.70.23.19] PHP 注意:未定义变量:/var/www 中的 _SESSION /euler/testPage2.php 在第 3 行,引用者:http://myURL.net/euler/testPage1.php

有什么想法吗?

【问题讨论】:

  • 把 session_start() 放到每一页
  • session_start() on testPage2.php
  • page2 缺少 session_start()
  • 好的,我知道将它添加到页面将解决这种情况。现在,我已经有了这样的 head.php 页面:&lt;?php session_start(); ?&gt; 知道为什么在 testPage2.php 的顶部使用“include head.php;”并不能解决问题吗?我希望不必将 session_start 添加到每个页面,因为我已经包含了该标题页。

标签: php html session-variables


【解决方案1】:

testPage2.php 缺少 session_start();添加

session_start();

在testPage2.php的顶部

【讨论】:

  • 好的,我知道将它添加到页面将解决这种情况。现在,我已经有了一个像这样的 head.php 页面:&lt;?php session_start(); ?&gt; 知道为什么在 testPage2.php 顶部使用“include head.php;”不能解决问题吗?我希望不必将 session_start 添加到每个页面,因为我已经包含了该标题页。
  • 你是在使用include head.php;还是include('head.php');
  • 字面意思是include 'head.php';
【解决方案2】:

来自PHP Manual

要使用基于 cookie 的会话,必须在向浏览器输出任何内容之前调用 session_start()。

因此,在您将使用会话的每个 php 脚本的最顶部包含 session_start()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 2015-02-23
    • 2012-09-02
    • 1970-01-01
    相关资源
    最近更新 更多