为什么我可以在同一页面回应我自己的PHP,但可以在另一个?

时间:2014-01-24 19:14:13

标签: php html

我在回显用户输入时创建了一个表单,当我从index.php转到second.php时,它的工作非常完美

但是当我尝试在同一个index.php中回显我的帖子时,它给了我一个错误?我很困惑为什么。语法是100%正确其他明智它不会在第2页工作,我也看了w3schools

抱歉,我试过YouTubing和谷歌搜索,但每个信息都转移到第二页

<html>
    <body>

        <form method="post">
            Name: <input type="text" name="name"><br>
            E-mail: <input type="text" name="email"><br>
            <input type="submit">
        </form>

        <?php echo $_POST['name']; ?>
        <?php echo $_POST['email']; ?>

    </body>
</html>

3 个答案:

答案 0 :(得分:1)

您遇到的问题是,在您发布(提交表单)之后,变量中的信息仅可用,因此在发布之前,$ _POST数组为空。你可以这样做来检查两种可能性:

<?php
if (isset($_POST['name'])) {
    $name = $_POST['name'];
} else {
    $name = '';
};

if (isset($_POST['email'])) {
    $email = $_POST['email'];
} else {
    $email = '';
};
?>
<html>
    <body>

        <form method="post">
            Name: <input type="text" name="name"><br>
            E-mail: <input type="text" name="email"><br>
            <input type="submit">
        </form>

        <?php echo $name; ?>
        <?php echo $email; ?>

    </body>
</html>

答案 1 :(得分:1)

您必须将页面绑定到自身,当您单击“提交”按钮时,它将使用以下代码将文件重新发送到浏览器:action=""这样您就可以根据需要回显变量。

<?php
    if (isset($_POST['name'])) {
        $name = $_POST['name'];
    } else {
        $name = '';
    }

    if (isset($_POST['email'])) {
        $email = $_POST['email'];
    } else {
        $email = '';
    }
    ?>


    <html>
        <body>

            <form action="" method="post">
                Name: <input type="text" name="name"><br>
                E-mail: <input type="text" name="email"><br>
                <input type="submit">
            </form>

            <?php echo $name; ?>
            <?php echo $email; ?>

        </body>
    </html>

NB:如果您计划在两个单独的页面中使用此答案中的整个代码,则可以将表单的操作设置为action="nameofthefile.php",使用PHP并将该文件命名为{{ 1}}

答案 2 :(得分:0)

当您加载index.php文件时,服务器会读取文件中存在的PHP,如何检查$_POST是否有值,然后尝试回显值。