Не работает mysqli через форму

189
04 апреля 2022, 00:20

Если прописывать в запрос данные то работает, но если работа через форму то через var_dump выводит NULL

PHP & MySQLi

$login = $_POST['login'];
$password = $_POST['password']
if(isset($_REQUEST['_auth_'])){
    $user = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT * FROM `users` WHERE `login` = '$login' AND `password` = '$password' LIMIT 1"));
    if($user == NULL) {
        header('Location: /');
        $_SESSION['mes'] = error('Неправильный логин или пароль!');
        exit;
    }
}

HTML

<form method="POST">
    <input name="login" placeholder="Введите логин...">
    <input type="password"  name="password" placeholder="Введите пароль...">
    <button name="_auth_">Авторизоваться</button>
</form>
Answer 1

Что вам сказать, вот так, как вы делаете - это неприемлемо. Вы в SQL-запрос вставляете данные, полученные от пользователя. В результате получаете инъекцию (http://phpfaq.ru/mysql/slashes). Начните с того, что замените прямую передачу данных в запрос на использование плейсхолдеров:

$stmt = $mysqli->prepare("SELECT id, name FROM users WHERE login = ? AND password = ?"); 
$stmt->bind_param("ss", $_POST['login'], $_POST['password']);
$stmt->execute();

Если "сильно хотите" использовать mysqli - https://www.php.net/manual/ru/mysqli.prepare.php

Но "лучше" использовать PDO. Вот вам статья (http://phpfaq.ru/pdo) - в ней предельно понятно всё описано. Читайте, что-то будет не понятно - спрашивайте.

READ ALSO
php загрузка фото в папку

php загрузка фото в папку

есть обычный слайдер, фото вставляются так:

233
Как создать кнопку скачки файла?

Как создать кнопку скачки файла?

У меня на сайте должен быть файл который надо скачать а как сделать так чтобы оно скачивалось я не знаюПомогите пожалуйста

143
html,css - вёрстка

html,css - вёрстка

Доброе утро, на этот раз у меня вопрос касательно контейнеров и в какой последовательности они должны идтиА также не понимаю как сделать...

79