PHP如何在刷新不成功登录后传递错误标记

PHP如何在刷新不成功登录后传递错误标记,php,Php,我有一个登录页面,我想实现以下效果: 如果用户登录失败,则显示错误消息。用户按下刷新按钮后,错误消息将不再可见 我不想传递$\u GET变量,例如index?page=login$failure。我想在不可见的url方式做这件事 <?php if(isset($_POST['submit_form_register'])) { ... if($login === false) { $user->go_to('index.php?page=login');

我有一个登录页面,我想实现以下效果: 如果用户登录失败,则显示错误消息。用户按下刷新按钮后,错误消息将不再可见

我不想传递$\u GET变量,例如index?page=login$failure。我想在不可见的url方式做这件事

<?php
  if(isset($_POST['submit_form_register'])) {
  ...
    if($login === false) {
      $user->go_to('index.php?page=login'); //Redirects back, cleaning the $_POST data.
    }
  ..
  }
?>
现在,对于我的表单,我该如何说重定向之前的某个东西在没有添加$\u GET的情况下坏了

更新。使用会话,我可以这样做吗

<?php
  if(isset($_POST['submit_form_register'])) {
  ...
    if($login === false) {
      $_SESSION['is_form_error'] = true;
      $user->go_to('index.php?page=login'); //Redirects back, cleaning the $_POST data.
    }
  ..
  }
?>
对于HTML输出:

  <?php if(isset($_SESSION['is_form_error']) and ($_SESSION['is_form_error'] === true)) { ?>
  <div>Your email or credential is invalid.</div>  
  <?php } unset($_SESSION['is_form_error']); ?>
但是这个对我不起作用。我打赌这是因为unset出了点问题。有什么建议吗


已解决:没有出口;在收割台之后;在$user->转到$url

您可以使用会话来显示和隐藏错误 当用户输入错误的user/pass时,设置错误会话并在视图中使用它,然后在显示后删除会话

`//Set Session
if (!$success) {
    $_SESSION['login_error'] = 1;
}
//show
if (isset($_SESSION['login_error'])) {
    echo "Invalid Username/Password";
    unset($_SESSION['login_error']);
}`

别忘了用session_start启动代码

您可以使用服务器端变量来存储/清除错误消息。我知道这个解决方案,但忘了提及。还有别的办法吗?好奇。请参阅此处的相关问题:将错误写入会话ID为的数据库。$user->go_to'index.php?page=login&urlencodestatus=unsuccess'好吧,我们已经在评论中讨论了所有问题,但由于您是第一个发布答案的人,我将接受您的答案。我的come完全相同,但它不起作用的问题是,在我的函数$user->go\u to after header中;我忘了写出口;