-3

我的 signin.html 只是一个带有用户名和密码字段的普通 html 页面..nd 一个登录按钮..我只想在上一个 signin.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!");


?>
4

2 回答 2

2

最好的方法是使这两个页面成为一个页面。表单可以指向同一个页面,您可以使用十几种变体来检查 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>
于 2013-04-03T00:22:40.087 回答
2

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

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

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


顺便说一句,考虑分离你的逻辑和表示:twig其他 PHP 模板引擎

于 2013-04-03T00:24:50.683 回答