刷新PHP重置页面

时间:2018-08-12 17:20:49

标签: php page-refresh

我有一个login.php文件,我在其中提交了一个表单。当表单存在验证错误(例如,用户名,密码为空)时,我用echo''; 引导程序以便显示错误。我的问题是,当我刷新页面时,我不希望显示.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>'; ?>

3 个答案:

答案 0 :(得分:0)

您可以保留一个新变量,例如$hasError,并且每当遇到验证错误时,都可以将此变量设置为true。然后,在输出中,仅当.well为false时才打印$hasError类,如下所示:

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

答案 1 :(得分:0)

您可以做的是,在php中传递一条if语句,当出现错误时,将页面重定向到login.php?error = x,其中x是您喜欢的值,然后进行检查( if语句)放在页面顶部,您将在其中检查网址是否具有该参数,如果显示,则显示错误消息

参考: Php得到:http://php.net/manual/en/reserved.variables.get.php php重定向:http://php.net/manual/en/function.header.php

答案 2 :(得分:0)

您可以使用会话来标识请求是由同一用户(特别是使用相同参数)完成的。显示错误消息时,您将标记保存在显示错误消息的会话中,如下所示:

$_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()清除标记,以便再次看到任何错误消息。