Php 我做了一个登录表单,但我遇到了一个问题,那就是我的密码接受小写字母和大写字母
我没有登录表单,但我遇到了一个问题,那就是我的密码接受小写字母和大写字母。谁能告诉我如何解决这个问题Php 我做了一个登录表单,但我遇到了一个问题,那就是我的密码接受小写字母和大写字母,php,mysql,session,input,passwords,Php,Mysql,Session,Input,Passwords,我没有登录表单,但我遇到了一个问题,那就是我的密码接受小写字母和大写字母。谁能告诉我如何解决这个问题 <?php include("config.php"); if(isset($_POST['login'])) { $username=$_POST['username']; $password=$_POST['password']; $qry="select * from admin where username='$username' and passwor
<?php
include("config.php");
if(isset($_POST['login']))
{
$username=$_POST['username'];
$password=$_POST['password'];
$qry="select * from admin where username='$username' and password='$password'";
$res=mysqli_query($con,$qry);
$len=mysqli_num_rows($res);
if($len>=1)
{
$user_id=mysqli_fetch_assoc($res)['id'];
$_SESSION['user_id']=$user_id;
$_SESSION['message']=$user_id;
$_SESSION['logout']="";
echo"<script>";
echo"window.location.href='admin/dashboard.php';";
echo"</script>";
}
}
不要按原样存储密码。改为使用一些散列,并将刚刚散列的密码与存储的散列密码进行比较
默认情况下,MySQL使用不区分大小写的排序规则。你可以改变它,但在这种情况下没有意义。正确的算法是:
- 在数据库端按用户名或密码选择用户
- 比较PHP端的密码哈希值
在这种情况下,您不关心字段大小写敏感度。大写字符串的哈希值将不同于小写字符串的哈希值
顺便说一下,您的代码容易受到SQL注入的攻击。我建议使用预先准备好的语句。不要以纯文本形式存储密码。相反,请使用和来存储和检查它们。还请注意,决不能在SQL语句中直接使用用户输入!您应该改为使用,将$\u POST
变量绑定到参数。鉴于上述代码,您存在严重的安全漏洞。有关如何防止PHP中的SQL注入的更多信息,请参阅:)mysqli_fetch_assoc($res)['id']
<我觉得它不会做您可能想要得到的事情,它是它的“id”,对吗?问题不清楚。