[英]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_connect
則mysql_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.