为什么我的登录代码不区分大小写?,我该怎么办?
我的表“成员(member)”
_________________________
|__username__|__password__|
|____mango___|___123456___|
我尝试使用
登录1. username = mango and password = 123456 , it's echo "true"
2. username = MANGO and password = 123456 , it's echo "true"
3. username = Mango and password = 123456 , it's echo "true"
为什么我的登录代码不区分大小写?我该怎么办?
<?PHP
include("connect.php");
$strUsername = trim($_POST["usename"]);
$strPassword = trim($_POST["password"]);
$sql = "SELECT * FROM member WHERE username = '".mysql_real_escape_string($strUsername)."'
and password = '".mysql_real_escape_string($strPassword)."' ";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$count=mysql_num_rows($result);
if($count==1)
{
echo "true";
}
else
{
echo "false";
}
?>
最佳答案
使用binary :
$sql = "SELECT * FROM `member` WHERE BINARY `username` = '".mysql_real_escape_string($strUsername)."'
AND BINARY `password` = '".mysql_real_escape_string($strPassword)."' ";
您还可以对代码进行一些其他改进。
- 您的密码没有使用任何哈希 - read this
- 您正在使用已弃用的
mysql_*
函数,PHP 正在尝试逐步淘汰这些函数。有很好的选择,this article给出了很好的解释,应该可以帮助您选择最适合您的替代方案。
关于php - 如何使用我的代码区分大小写登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21377683/