2017-06-18 48 views
1

選擇現在我有該行代碼具有空間,它SQL平等字母

$query = mysqli_query($connection, "select * from users where password='$password' AND username='$username'");

在MySQL數據庫中,我有記錄的「測試」,密碼爲「測試」 但當我用「TEST」「Test」執行此行時,它也會登錄。 我該如何刪除它?

+0

https://dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html –

+2

首先,您應該[*永遠不會*以明文形式存儲密碼](https://blog.codinghorror.com /您選擇-可能儲存-密碼-錯誤/)。如果您存儲密碼的哈希值,然後計算用戶輸入的哈希值,這應該可以解決您的問題,並使您的應用程序更安全。 –

+0

鮑勃在這裏的錢是正確的,使用散列密碼單向加密,檢查PHP手冊的'password_verify'功能 –

回答

0

嘗試使用BINARY:

$query = mysqli_query($connection, "select * from users where binary password='$password' AND binary username='$username'"); 

這應該使查詢區分大小寫。