Я сделал форму входа, но у меня возникла проблема: мой пароль принимал как строчные, так и прописные буквы - PullRequest
0 голосов
/ 03 февраля 2020

Я сделал форму входа, но у меня возникла проблема: мой пароль принимал как строчные, так и прописные буквы. Может кто-нибудь сказать мне, как решить эту проблему.

<?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>";
      }
}

?>

1 Ответ

0 голосов
/ 03 февраля 2020
  1. Не хранить пароль как есть. Вместо этого используйте значение ha sh и сравните только что хешированный пароль с сохраненным хешированным паролем.

  2. По умолчанию MySQL использует сортировку без учета регистра. Вы можете изменить это, хотя это не имеет смысла в этом случае. Правильный алгоритм:

    • выбор пользователя по имени пользователя или паролю на стороне базы данных
    • сравнение хэшей паролей на стороне PHP
      В этом случае вас не волнует поле чувствительность к регистру. Ха sh строки в верхнем регистре будет отличаться от ха sh строки в нижнем регистре.

Кстати, ваш код уязвим против SQL инъекций. Я рекомендую использовать подготовленные заявления.

...