PHP 会话变量不会跨页面保留


PHP Session variables not preserved across pages

我是PHP新手,在使用PHP会话时遇到一些问题

假设我有一个包含此代码的文件(index2.php)。

<?php 
   session_start();
   $_SESSION['name'] = 'The User';
?>
<a href="index3.php">Click</a>

这是index3.php

<html>
   <head>
   </head>
   <body>
      <h1>
          <?php 
                 echo $_SESSION['name'];
          ?>
      </h1>
   </body>
</html>

出于某种原因我不明白,index3.php什么也没显示。我做错了什么?

谢谢!

index3.php中,您还需要启动会话。根据官方PHP文档:

当调用 session_start() 或会话自动启动时,PHP 将 调用打开和读取会话保存处理程序。

使用您的示例,只需启动session_start(),如下所示:

<?php 
    session_start();
?>
<html>
   <head>
   </head>
   <body>
      <h1>
          <?php 
                 echo $_SESSION['name'];
          ?>
      </h1>
   </body>
</html>

确保你也有 session_start(); 在您想要保留和使用会话的所有 PHP 页面中;

确保 index3.php 包含 session_start();