首页 > 解决方案 > PHP会话未显示值

问题描述

<?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 值。我不明白我在这里做错了什么。

标签: phphtmlsession

解决方案


假设您的第一个文件名为first.php. 如您所示<form>,第二个是second.php.

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

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

(我不知道为什么要看到这个model集合,但我猜你之前的测试中它仍然存在。)


推荐阅读