PHP 刷新时重置页面

PHP reset page on refresh

我有一个 login.php 文件,我可以在其中提交表格。当表单出现验证错误(例如用户名、密码为空)时,我使用 echo ''; 创建 a bootstrap 井以显示错误。我的问题是,当我刷新页面时,我希望 .well 不显示,就像页面首次加载时一样。 知道如何做到这一点吗?

提前致谢

   <?php if(count($msg) > 0) {
    echo '<div class="well">'; 
    echo '<p style="color: red;">Validation Errors</p>';
 } ?>
<?php foreach($msg as $value) {
    echo '<ul>';
    echo '<li>';
    echo $value;
    echo '</li></ul>';
} ?>
<?php echo '</div>'; ?>

您可以保留一个新变量,例如 $hasError,每当出现验证错误时,您都可以将此变量设置为 true。然后,在你的输出中,当 $hasError 为假时,你只打印 .well class 像这样:

<div class="<?=(!$hasError) ? '.well' : '';?>">YOUR MESSAGE HERE!</div>

您可以使用会话来识别请求是由同一用户完成的,特别是具有相同参数的请求。当您显示错误消息时,您在会话中保存了一个标记,表明您已显示错误消息,如下所示:

$_SESSION['errorDisplayed'] = true;

使用这个变量来查看您是否在之前的请求中显示了这样的错误消息:

if (!isset($_SESSION['errorDisplayed'])) {
    // not shown the error message yet, so do it here (if there are errors)

    $_SESSION['errorDisplayed'] = true;
}

请记住,有时您必须再次使用 unset() 清除标记,这样您才能再次看到任何错误消息。