输出错误的用户名或密码

时间:2014-04-30 23:44:52

标签: php

我需要有关此代码的帮助才能输出错误的用户名或密码,但它不会:(

  <?php 



include 'functions.php';
if(loggedin()){
header("Location: index.php");
exit();

}
 if(isset($_POST['login'])){

$username=$_POST['Username']; 
$password=$_POST['Password'];


if(isset($_POST['rememberme'])){
    $rememberme = $_POST['rememberme'];


}

if($username&&$password){
    $login = mysql_query("SELECT * FROM php_customer WHERE Username='$username'");

    while($row = mysql_fetch_assoc($login)){
        $db_password = $row['Password'];
        if($password == $db_password){
            $loginok= TRUE;
        }
            else{
            $loginok= FALSE;

            }

        if($loginok==TRUE)
        {

            if($rememberme=="on"){
                setcookie('Username',$username, time() + 7200);
            }else if ($rememberme==""){
            $_SESSION['Username'] = $username;}
            header("Location: index.php"); 
            exit();
        }

        echo "Incorrect Username or Password";
    }

}

} ?&GT;

我尝试按$loginok=false;添加它,但没有任何效果。我不希望你们对我说心理,这是1行代码有点事。同样是的,我知道如果您将用户名存储为cookie,则可以登录。只是试图验证atm。

1 个答案:

答案 0 :(得分:0)

在执行SQL查询之前,将标志设置为false:

 $loginok = FALSE;
 $login = mysql_query(....);

为什么呢?因为SQL查询显然不会为表中不存在的用户名返回任何内容。

这也意味着,你需要确保行echo "Incorrect Username or Password";和基于$ loginok的if语句不在通过记录集的循环中,但是在它之后。 这意味着您需要学习如何正确缩进代码,以便明确if-statements和循环的开始和结束位置。