0
我有登錄問題,當我輸入正確的用戶名和密碼錯誤的結果不應該讓我登錄,但在我的情況下,如果用戶名正確,密碼錯誤,它允許我登錄到應用程序。如何檢查在PHP登錄?
這裏是我的登錄腳本
<?PHP
include_once("conn.php");
$user= $_POST['userName'];
$password = mysqli_real_escape_string($_POST['password']);
$qr="select password from user where userName='$user'";
$res=mysqli_query($con, $qr);
while($row=mysqli_fetch_array($res)){
$pass=$row[0];
}
$saltQuery = "select salt from user where userName = '$user'";
$result = mysqli_query($con , $saltQuery);
while($row=mysqli_fetch_array($result)){
$salt = $row[0];
}
$saltedPW = $password . $salt;
$hashedPW = hash('md5', $saltedPW);
if($pass==$hashedPW){
$query = "SELECT userName, password FROM user WHERE userName = '$user' AND password = '$hashedPW'";
$result = mysqli_query($con, $query);
if($result->num_rows > 0){
echo"success login ";
} else{
echo"failed login ";
}
您是否在數據庫中爲用戶名設置了主鍵? 它看起來像你有多個記錄使用相同的用戶名和密碼 –
首先,你爲什麼不使用單個查詢來獲取所有的細節而不是3個查詢? –
如果你甚至沒有基本的調試技巧來自己分析這樣的問題,你可能不應該編寫自己的登錄腳本。 – CBroe