0

所以我需要弄清楚如何让我的 else 语句返回到我之前的函数 passprotect.html (我开始的文件)。所以我写下我的密码并点击提交。当我点击提交时,它会检查我的 PHP 密码是否正确。如果密码正确,它会写下“你做到了!”。如果它是错误的,我希望它返回到 passprotect.html 站点,并显示一条错误消息,“密码错误,再试一次!”。

这是我的两个代码:

<html>
<body>
<title>FriedBitz</title>

    <form action="secret.php" method="post">
    Password: <input type=password name=pass></input>
    <input type=submit value=Enter>
    </form>


</body>
</html>

<html>
<body>

HERE IS YOUR RESULT

<?php
    if ( $_POST['pass'] === 'test')
        {
        echo "You did it!";
        }
    else
        {
        header('Location:www.example.com');
        }
?>

</body>
</html>
4

1 回答 1

0

因此,正如 Marc B 指出的那样,您不能以这种方式使用标题。

来自php.net 手册-> 请记住,必须在发送任何实际输出之前调用 header(),无论是通过普通 HTML 标记、文件中的空白行还是从 PHP 发送。

如果您无法更改项目文件的布局(在发送标题之前删除输出),我建议您使用 ajax 进行此类工作。

或者您需要在页面而不是标题上为用户放置可点击的链接。

使用您的代码的工作标头示例:

        <?php
            if ( $_POST['pass'] === 'test')
                {
                $output = 'You did it!';
                }
            else
                {
                header('Location:www.example.com');
                exit;
                } ?> 
        <html> 
        <body>

        <?php echo $output; ?>

        </body>
        </html>

于 2013-06-01T07:17:38.763 回答