我可以显示“不正确的密码”吗?消息在以前的login .html页面后,我已经移动到logincheck.php页面


Can I display an "incorrect password" message in a previous signin.html page after i have already moved to a logincheck.php page

my signing . HTML只是一个普通的HTML页面,有用户名和密码字段,还有一个登录按钮。我想把所有错误信息显示在前面的signing。html页面的echo下。logincheck.php代码如下:

<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
if($username && $password)
{
$connect = mysql_connect("localhost","root","") or die("Couldn't connect!");
mysql_select_db("project") or die("Couldn't find db");
$query= mysql_query("SELECT * From signup1 WHERE username='$username'");
$numrows = mysql_num_rows($query);
if ($numrows!=0)
{
//code to login
 while ($row = mysql_fetch_assoc($query))
    {
        $dbusername = $row['username'];
        $dbpassword = $row['password'];
    }
    if($username==$dbusername&&$password==$dbpassword)
    {
        $_SESSION['username']=$username;
        header('Location:mailbox.php');
    }
    else
     echo "Incorrect password!";
}
else
die("That user does't exist!");

}
else
die("Please enter  username and Password!");


if($_SESSION['username'])
echo "Welcome, " .$_SESSION['username']."!<br><a href='logout.php'>Logout</a><br> ";
else
die ("You must be logged in!");

?>

最好的方法是使这两个页面成为一个页面。表单可以指向同一个页面,您可以使用许多变体来检查POST数据是否可用。如果有POST数据,则处理登录。

如果登录成功,根据需要重定向。否则打印错误。一些示例代码:

<?php
if(!empty($_POST)){
// logic to check login status
   if( login_successful ){
      // redirect user
      exit;
   }
   print "error";
}
?>
<form method="post" action="login.php">
  login form here
</form>

如果我理解错了请纠正我,但你基本上只是想重定向到登录页面,对吗?如果是,你可以这样做:

header("Location: ./login.php?error=incorrect+password");

或类似的,然后在login.php中进行处理以显示错误消息。


作为题外话,考虑将逻辑和表示分离:twig或其他PHP模板引擎