php - 如何使用我的代码区分大小写登录?

标签 php mysql authentication case-sensitive

为什么我的登录代码不区分大小写?,我该怎么办?

我的表“成员(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)."' ";

您还可以对代码进行一些其他改进。

  1. 您的密码没有使用任何哈希 - read this
  2. 您正在使用已弃用的 mysql_* 函数,PHP 正在尝试逐步淘汰这些函数。有很好的选择,this article给出了很好的解释,应该可以帮助您选择最适合您的替代方案。

关于php - 如何使用我的代码区分大小写登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21377683/

相关文章:

php - PHP 的 gmtime() 在哪里?

mysql - 使用 mySQL 按顺序检索值并减去行

mysql - 使用选定的数据执行多次插入

php - 使用 MySQLi 检查用户名是否已存在

android - 使用选项卡实现登录屏幕

facebook - OAuth 正在被破坏,但只有当用户来自 HTTP 时,HTTPS 才能正常工作

php - 如何使用strotime更新mysql unix时间戳

php - 用于 ping Web 服务器的服务

php - 每个帖子请求的 CSRF token 不匹配 Laravel 9

mysql - 在 R 中使用 sqldf - 无法指定正确的用户名