За последние 24 часа нас посетили 71784 программиста и 10270 роботов. Сейчас ищут 2556 программистов ...

Сравнение полученного пароля с введеным через login

Тема в разделе "Сделайте за меня", создана пользователем Cannabioid1337, 23 янв 2021.

  1. Cannabioid1337

    Cannabioid1337 Новичок

    С нами с:
    23 янв 2021
    Сообщения:
    1
    Симпатии:
    0
    у меня авторизация
    которая получает всю информацию из бд через $_POST telegram_id,
    и сверяет, равен ли введенный пароль полученному паролю.
    но если аккаунт не существует, он ошибку выводит Trying to access array offset on value of type null
    если ввести верные данные, все ок.

    PHP:
    1. $telegram_id = filter_var(trim($_POST['telegram_id']), FILTER_SANITIZE_STRING);
    2. $password = filter_var(trim($_POST['password']), FILTER_SANITIZE_STRING);
    3.  
    4.     $query = "SELECT * FROM `workers` WHERE telegram_id='$telegram_id'";
    5.   $result = $mysql->query($query);
    6.   $result = $result->fetch_assoc();
    7. if ($password == $result["password"])   {
    8. echo "пароль верный";
    9. }
    10. else {
    11.     echo "пароль неверный";
    12. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.875
    Симпатии:
    756
    Адрес:
    Татарстан
    Да потому...
    Вы независимо от результата запроса пытаетесь использовать результат. А его нет. Да и вещи такие делаются одновременной проверкой логина и пароля в запросе... Ну и неэкранированные данные прямой путь в никуда... То есть sql иньекции
     
  3. php8guru

    php8guru Новичок

    С нами с:
    24 янв 2021
    Сообщения:
    14
    Симпатии:
    1
    Проверяйте что result существует.
    И почитайте про prepare statements, ваш текущий код достаточно просто сломать.