0

需要有关会话的帮助,不知道出了什么问题。

第 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] => John )

第 2 页结果数组 ( )

我确实有 session_start(); 在这两个页面上都
尝试过 IE 和 Firefox,但没有工作
请提供建议并感谢 :)

4

3 回答 3

1

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

编辑后

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

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

如果它们仍然不起作用,您可能会将文件作为 UTF-8和 BOM,您应该禁用 BOM。如何做到这一点取决于编辑器。

于 2012-06-05T08:50:48.737 回答
0

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

于 2012-06-05T08:53:38.997 回答
0
  1. 试试<?php print_r($_COOKIE);?>。并确保你有PHPSESSID饼干。
  2. <?php echo phpinfo(); ?>并确保session.save_path您的 apache 用户可写。

更新:

很明显您的浏览器没有传入所需的 cookie。您能否再次确认您的 phpinfo 是否session.name存在PHPSESSID

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

<?php
    $fp = fopen('D:\xampp\tmp\test.txt', 'w');
    fwrite($fp, 'test');
    fclose($fp);
?>
于 2012-06-05T08:58:22.900 回答