用户名和密码错误处理

问题描述:

我试图把一些陷阱,但它没有奏效。我可以用错误的用户名和密码登录。这有什么可能的解决方案?用户名和密码错误处理

foreach ($result as $row) { 
    $acc_username=$row['acc_username']; 
    $acc_password=$row['acc_password']; 
    $acc_tableid=$row['table_id']; 


    } 

    if ($result == 0){ 
    echo ' 
    <div class="alert alert-danger"> 
    <strong>Danger!</strong> This alert box could indicate a dangerous or potentially negative action. 
    </div>'; 
    echo ("<SCRIPT LANGUAGE='JavaScript'> 
    window.location.href='tableLogin.php'; 
    </SCRIPT>"); 
} 
else{ 
    $_SESSION['table_number'] = $_POST['Make']; 
    $_SESSION['table_idd'] = $row['table_id']; 
    header("Location: customerLogin.php"); 
} 
    $update = "UPDATE tables SET login_status=1 WHERE table_id= $table_id"; 
    if(mysql_query($update)){ 
     } 
}catch(PDOException $e) { 
echo "Connection failed: " . $e->getMessage(); 
} ?> 
+0

你怎么'$ result',你可以发表你的数据库查询了。 –

+0

$ stmt = $ conn-> prepare(“SELECT account.acc_username,account.acc_password,tables.table_id FROM account INNER JOIN tables ON tables.table_id = account.table_id WHERE tables.table_number ='$ makerValue'AND account.acc_username = '$ uname'AND account.acc_password ='$ pword'“); $ stmt-> execute(); $ result = $ stmt-> fetchAll(PDO :: FETCH_ASSOC); –

我不知道你是怎么做您最初的数据库查询代码,您发布的部分之前,但如果你正在做使用fetchall让行从数据库中则可能是更换

的问题
if ($result == 0){ 

if (empty($result)){ 

,以满足任何用户发现并在SQL查询错误。

编辑:我的意思是使用fetchall

+0

它的工作!谢谢。 –

+0

不用担心。如果是这样,请勾选问题作为答案。 –

试试这个:

if (empty($result)){ 

if (count($result) == 0){ 
    //show alert 
} 
else 
{ 
//update login status 
}