@Emil7676

Как сделать чтобы при неправильном вводе пароля была ошибка?

Делал регистрацию и авторизацию по этому видео ютуб-https://www.youtube.com/watch?v=3UtB4QS6EAg&t=2525s
Дошёл до авторизации но у меня не работает авторизация при вводе неправильного пароля, пишет-Сейчас эта страница не работает, а когда вводишь правильно всё тогда работает, тайм код где автор начал делать авторизацию-37:15 там более менее видно весь код и он там дальше делает, уже 2 раз перепроверил, не знаю где ошибка, можете подсказать?
База данных-62eb846929c56427128680.png
код html
<form class="form-signin" action="auth.php" method="post" name="form">
          <label for="username">Логин</label>
          <input class="form-styling" type="text" name="fullname" id="fullname" placeholder=""/>
          <label for="password">Пароль</label>
          <input class="form-styling" type="text" name="password" id="password" placeholder=""/>
          <input type="checkbox" id="checkbox"/>
          <label for="checkbox" ><span class="ui"></span>ffff</label>
          <div class="btn-animate">
            <button class="btn-signin" type="submit">Войти</button>
          </div>
				        </form>

код php
<?php 


$fullname = filter_var(trim($_POST['fullname']),
FILTER_SANITIZE_STRING);


$password = filter_var(trim($_POST['password']),
FILTER_SANITIZE_STRING);


$password = md5($password."ghjsfkld2345");


$mysql = new mysqli('localhost', 'root', 'root', 'register-bd');


$result = $mysql->query("SELECT * FROM `users` WHERE `login` =
'$fullname' AND `pass` = '$password'");

$user = $result->fetch_assoc();
if(count($user) == 0) {
    echo "Такой пользователь не найден";
    exit();
}
    
setcookie('user', $user['fullname'], time() + 3600 * 24 * 90, "/");


$mysql->close();
header('Location: /');



?>
  • Вопрос задан
  • 691 просмотр
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
пишет-Сейчас эта страница не работает,
смотрим логи, а лучше включаем вывод ошибок. После этого внимательно читаем ошибки и исправляем.

$password = md5($password."ghjsfkld2345");
забыть как страшный сон, читаем про password_hash(), делаем как надо.

$result = $mysql->query("SELECT * FROM `users` WHERE `login` = '$fullname' AND `pass` = '$password'");
Читаем про подготовленные выражения, автору видео ставим дизлайк и больше всякое г не смотрим.

setcookie('user', $user['fullname'], time() + 3600 * 24 * 90, "/");
работать с куками вместо сессии - отдельный вид некомпетентности, точнее - открытое вредительство.

$mysql->close();
Абсолютно лишняя строка, драйвер сам закрывает соединение по завершении скрипта, делать это вручную нужно лишь в исключительных случаях, еще один пинок в карму...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы