簡體   English   中英

登錄錯誤密碼和用戶名組合

[英]login error password and username combination

<?php
session_start();

$db =mysqli_connect("localhost", "root", "","registration" );
if (isset($_POST['login_btn'])){
    $username = mysql_real_escape_string($_POST ['username']);
    $password = mysql_real_escape_string($_POST ['password']);

    $password= md5($password);
    $sql = "SELECT * FROM users WHERE username= '$username' AND password= '$password'";
    $result = mysqli_query($db, $sql);
if(mysqli_num_rows($result) == 1 ){
$_SESSION['message']= "You are now logged in";
$_SESSION['username'] = $username;

header("Location: home.php");
}else{
    $_SESSION['message'] = "Username and  password combination is incorrect";
}

}
?>

<html>
<head>

</head>
<body>
<div class="header"> <h1>login</h1></div>

<?php
if (isset($_SESSION['message'])){
    echo "<div id = 'error_msg>".$_SESSION['message']."</div>";
    unset($_SESSION['message']);
}
?>

<form method="post" name="loginform" action="login.php">
    <table>
        <tr>
            <td> Username:</td>
            <td><input type = "text" name="username" placeholder="Username" class="textInput"  required></td>
        </tr>

        <tr>
            <td> Password:</td>
            <td><input type = "password" placeholder="Password"  name="password" class="textInput" required></td>
        </tr>

        <tr>
            <td></td>
            <td><input type = "submit" name="login_btn" value="Login"></td>
        </tr>
    </table>
</form>
</body>

</html>

大家好,這是我使用 PHP 的登錄頁面。 除了登錄之外,它還允許使用不同的密碼。 根據代碼,它設置為檢查兩個密碼是否匹配,如果不匹配,則顯示錯誤。

即使兩個密碼不匹配,這個也不會顯示錯誤。 為什么它允許用戶使用錯誤的密碼登錄??

我希望它在密碼不匹配時顯示錯誤,並且由於憑據錯誤而不允許登錄。

您沒有正確使用mysql_real_escape_string 您應該使用mysqli_real_escape_string或使用mysql_connect連接到 MySQL。

如果使用mysql_connectmysql_real_escape_string的第二個參數會自動假定,但您使用的是mysqli_connect ,這就是它找不到任何連接的原因。

從 pph 網站它指出:

MySQL 連接。 如果未指定鏈接標識符,則假定為mysql_connect()打開的最后一個鏈接。 如果沒有找到這樣的鏈接,它會嘗試創建一個鏈接,就好像mysql_connect()沒有被調用一樣。 如果未找到或建立連接,則會生成E_WARNING級別錯誤。

參考: http : //php.net/manual/en/function.mysql-real-escape-string.php

嘗試改變

 $username = mysql_real_escape_string($_POST ['username']);
 $password = mysql_real_escape_string($_POST ['password']);

$username = mysqli_real_escape_string($db, $_POST ['username']);
$password = mysqli_real_escape_string($db, $_POST ['password']);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM