使用会话将变量从一个 php 文件传递​​到另一个文件并重置会话

Passing variables from one php file to another with sessions and resetting the session

所以我有这两页:一页有一个表单,需要一些文本,它应该显示在另一页上。所以我有一个 php 脚本,它将从输入和会话中捕获值,并且一个 php 文件应该在另一页上显示它;这是代码,您可以在此处在线试用。现在它根本不起作用。 我已经在两个页面上开始了会话

您可以在线查看这些页面:

http://www.canonseverywhere.net/test/admin/beta/index.php 主页(索引)
http://www.canonseverywhere.net/test/admin/beta/content.php 内容页
显示表单以捕获值的第 1 页;这是 index.php:

<html><body>
       <div>
            <ul>
                <li>
                     <div>
                         <form action="enter-content.php"  method="post" enctype="multipart/form-data" > 
                                 <span>
                                        <textarea  name="text"></textarea>
                                 </span>
                                 <br>
                                 <input type="submit" value="submit">
                         </form>
                     </div>
                 </li>
             </ul>
         </div>
</body></html>

然后是“输入-content.php”:

<?php
session_start();


         if(isset($_POST["submit"])) { 
            $_SESSION['text1'] = $_POST['text'];
    
            return false;
            }

?>

然后是“content.php”,这里会显示传递的文本内容

<html>
    <body>
        <div>
            TEST PAGE           
            <p>     
            <?php 
             session_start();
            
             include "enter-content.php"; 
             echo $_SESSION['text1'];
            ?>

            </p>
        </div>
    </body>
</html>

这些是我在本地主机上使用它时收到的错误:

这是我收到的错误: 注意:未定义的变量:_SESSION in /home/philippe/public_html/canonseverywhere.net/test/admin/beta/content.php on line 18

所以我在 enter-content.php 中设置了一个简单的变量,然后我可以通过会话在 content.php 页面中使用它。因此,问题似乎出在将 $_POST[] 值分配给 $_SESSION 变量;我在 if 语句中完成了它,我返回了 false 值,这似乎是不正确的。谢谢!

原因是: 使用 include 而不是 session_start 或同时使用 include 和 session_start;
解决方案:仅使用 session_start()

删除 'content' 页面上的包含 'enter-content'。

包含调用 session_start(),这将是同一页上的第二次调用。