【问题标题】:PHP session not showing a value [closed]PHP会话未显示值[关闭]
【发布时间】:2025-07-12 10:25:03
【问题描述】:
<?php
    session_start();
?>
<html>
    <head>
        <link href="style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
        <div class="pageContainer">
            <form action="second.php" class="formLayout" method="post">
                <div class="formGroup">
                    <label>Name:</label>
                    <input type="text" name="first_name"><br>
                    <input type="hidden" name="postback" value="true"><br>

                </div>
                <div class="formGroup">
                    <label> Car model:</label>
                    <div class="formElements">
                        <input type="radio" name="model" value="Mustang">Ford Mustang<br>
                        <input type="radio" name="model" value="Subaru">Subaru WRX STI<br>
                        <input type="radio" name="model" value="Corvette">Corvette<br>
                    </div>
                    <input type="submit" name="submit">
            </form>
            <?php
                if (isset($_POST['submit'])) {
                    $_SESSION["first_name"] = $_POST["first_name"];
                    $_SESSION["model"] = $_POST["model"];
                }

            ?>
        </div>
    </body>
</html>

我设置我的代码以将“first_name”和“model”名称的值设置到我的会话变量中。

当我尝试访问表单提交页面中存储变量的值时:

<?php
    session_start();
?>
<html>
    <body>
        <?php
            echo $_SESSION["first_name"];
            echo $_SESSION["model"];
        ?>
    </body>
</html>

我只收到模型值之外的值,而不是 first_name 值。我不明白我在这里做错了什么。

【问题讨论】:

  • 实际上我希望model 也会丢失。也许它来自你之前的测试。
  • 提交后,您的代码永远不会到达if (isset($_POST['submit'])),因为您将被重定向到second.php 页面。最好将此代码移到顶部,提交到self 设置会话变量,然后使用header() 重定向到第二页。或白色直接将会话变量放入 second.php,即将整个 if 移动到第二页..
  • 这个问题解决了吗?鉴于下面的答案,听起来是这样。如果是这样,应该接受以解决问题结束。
  • 是的,解决了。

标签: php html session


【解决方案1】:

假设您的第一个文件名为first.php。如你的&lt;form&gt;所示,第二个是second.php

您似乎正在将数据写入first.php 文件中的会话,但此代码将永远不会运行,因为您将表单提交给second.php 而不是first.php

因此,请将写入会话变量的代码移至second.php。要测试它是否真的有效,您可以创建一个third.php 来显示它们。

(我不确定为什么会看到 model 集,但我猜你之前的测试中它仍然存在。)

【讨论】:

  • 哇,谢谢。我能够得到想要的结果。如果我可以要求您跟进,如果我在第一页有一个表格,在第一页有第二个表格,我会做同样的事情吗?我会在第三页中使用相同的语法来回显输出吗?我想知道自从这样做后语法是否会有所不同,我只从第一页(模型)获取输出,而不是从第二页(first_name)获取输出。