PHP Session无法正常工作,无法为下一页带来价值

时间:2012-06-05 08:44:24

标签: php html

需要关于会话的帮助,不确定哪里出错。

第1页

    <?php session_start()?>
    <html>
      <head>
      </head>
        <body>
          <?php
            $_SESSION['name'] = 'John';
            Print_r ($_SESSION);
          ?>
        </body>
    </html>

第2页

    <?php session_start()?>
    <html>
      <head>
      </head>
        <body>
          <?php  
           Print_r ($_SESSION);
          ?>
        </body>
    </html>

第1页结果 数组([name] =&gt; John)

结果 Array()

我确实有session_start();两页都有
试过IE和Firefox,但没有工作
建议请和谢谢:))

3 个答案:

答案 0 :(得分:1)

正如lanzz所述,您需要在两个页面中调用session_start()或在session.auto_start上将php.ini设置为1。

编辑后

你似乎在php开始标记(<?php)之前有一些空格。它必须是第一个被评估的东西。如果不是,则无法使用会话数据发送标头,因此它们不起作用。它应该发出警告,因此您可能已禁用它们。要修复它,请按如下所示编写代码。

<?php session_start()?>
<html>
  <head>
  </head>
    <body>
      <?php
        $_SESSION['name'] = 'John';
        Print_r ($_SESSION);
      ?>
    </body>
</html>

如果它们仍然不起作用,您可能将文件设为UTF-8 有BOM ,则应禁用BOM。怎么做取决于编辑。

答案 1 :(得分:0)

您必须在所有页面上调用session_start()

答案 2 :(得分:0)

  1. 尝试<?php print_r($_COOKIE);?>。并确保你有PHPSESSID cookie。
  2. <?php echo phpinfo(); ?>并确保您的apache用户可以写session.save_path
  3. <强>更新

    很明显,您的浏览器没有传递所需的cookie。你可以双倍确认你的phpinfo session.namePHPSESSID吗?

    要检查目录是否可写,只需运行带有以下脚本的php文件:

    <?php
        $fp = fopen('D:\xampp\tmp\test.txt', 'w');
        fwrite($fp, 'test');
        fclose($fp);
    ?>