2012-06-13 52 views
0

所以我有我的登錄表單在我的網站上。特徵案例問題

例如我的用戶名是JuvarAbrera(保存在mysql中)。

當我嘗試使用該用戶名登錄---> juvarabrera

它仍然登錄在我的網站。現在,我希望它不會登錄,因爲J和A是大寫的。

那麼,我該怎麼做呢?我想我解釋得很好。

謝謝。 :)

+0

你是如何設置登錄腳本的?你是自己編寫的,還是使用預構建或打包的登錄系統? – bendataclear

+0

@Nikson在這種情況下,'UPPER'或'LOWER'完全沒有意義 – rabudde

+0

@bendataclear我正在創建自己的登錄系統。 :| –

回答

4

你可以整理什麼在查詢中的值:

SELECT `id` FROM `users` WHERE `username` = 'php_value' COLLATE utf8_general_cs 
+0

使用'COLLATE'也是一種很好的方法,但'utf8_general_cs'將允許使用像'JüvärÄbrerä'這樣的用戶名,因爲它根據語言規則處理字符串,我認爲這不是海報想要的 – rabudde

+0

這是一個公平點,我只是假定他只關心區分大小寫。感謝您將其添加到組合中! – BenM

+0

嘿@BenM,只是檢查這是否正確。 - > SELECT * FROM users WHERE username ='$ myusername'AND password ='$ mypassword'COLLATE utf8_general_cs LIMIT 1 –

4

改變列排序規則utf8_bin(即,使用utf8_general_ci時)

採取對語言規則*_general_*歸類因爲comparisions基礎護理。所以看看

utf8_general_ci符合下列條件:'a'='A''ä'='A'utf8_general_cs符合下列條件:'Ä'='A'utf8_bin這些都不是真實的,我想這就是你想要

0

下面的SQL查詢將允許大寫的名字:

SELECT * 
FROM login 
WHERE uname   = '$username' AND 
     BINARY(uname) = BINARY('$username')