2012-05-20 270 views
2

我可以通過表單中的以下代碼獲取用戶輸入的名稱(用戶名)。所以我的問題是如果我把Shibbirbd(第一個字母是資本,但它是我的數據庫中的shibbirbd),那麼它已成功進入用戶登錄面板!但這是錯誤的。爲什麼會發生? Mysql數據庫的用戶名是:shibbirbd區分大小寫的查詢

登錄腳本形式:

$uname = mysql_real_escape_string(htmlspecialchars(trim($_POST['uname']))); 
$pass = mysql_real_escape_string(htmlspecialchars(trim($_POST['pass']))); 

回答

2

您可以將您的WHERE子句更改爲WHERE BINARYWHERE BINARY uname = '$uname'),以測試用戶名之間的二進制值是否相等。

如果您希望此表格中的所有查詢都區分大小寫,則應考慮更改排序規則,如@Kolink suggested

+0

我在檢查它.. – Shibbir

+0

謝謝工作。 :-) – Shibbir

1

你是說你期待,如果你有大寫字母那裏應該小寫它不是在您登錄?

在這種情況下,該表的排序規則更改爲這是區分大小寫的,如utf8_bin

0

在大多數情況下,字符串不區分大小寫。爲什麼重要的是用戶名是casesensitive?

在MySQL中,您可以看到,使用編碼_ci哪些meanes案件無意義。如果你想嘗試一些_bin或_cs合成物。

0

聲音與列整理不區分大小寫,這是默認設置。嘗試將其更改爲區分大小寫的排序規則,例如latine_general_cs