Недопустимая длина имени, фамилии и пароля (от 6 до 15 символов)

При Регистрации имени, фамилии, пароля выдает "Недопустимая длина имени(от 6 до 15 символов)" фамилии и пароля тоже самое выдает введите сюда описание изображения

<?php
    // Получение данных из формы
    $login = filter_var(trim($_POST['surname']), FILTER_SANITIZE_STRING);
    $login = filter_var(trim($_POST['name']), FILTER_SANITIZE_STRING);
    $login = filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING);

    if(mb_strlen($name) < 5 || mb_strlen($name) > 15) {
        echo "Недопустимая длина имени (от 6 до 15 символов)";
        exit();
    } else if (mb_strlen($surname) < 5 || mb_strlen($surname) > 15) {
        echo "Недопустимая длина фамилии (от 6 до 15 символов)";
        exit();
    } else if (mb_strlen($pass) < 5 || mb_strlen($pass) > 20) {
        echo "Недопустимая длина пароля (от 6 до 20 символов)";
        exit();
    } 

    $pass = md5($pass."dfgsdfgsdvcxb22");

    // Подключение к базе данных
    require "../blocks/connect.php";
    $mysql->query("INSERT INTO `users` (`name`, `surname`, `pass`) VALUES('$name', '$surname', '$pass')");

    $mysql->close();

    header('Location: /');
?>

<?php
    // Получение данных из формы
    $login = filter_var(trim($_POST['surname']), FILTER_SANITIZE_STRING);
    $login = filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING);
    $login = filter_var(trim($_POST['name']), FILTER_SANITIZE_STRING);
    
    $pass = md5($pass."dfgsdfgsdvcxb22");

    // Подключение к базе данных
    require "../blocks/connect.php";

    $result = $mysql->query("SELECT * FROM `users` WHERE `surname` = '$surname' AND `pass` = '$pass'");
    $user = ($result_set);
    if(count($user) == 0) {
        echo "Такой пользователь не найден";
        exit();
    }

    setcookie('user', $user['name'], time() + 3600, "/");

    $mysql->close();

    header('Location: /');
?>

При любом раскладе, при любых данных, выдает ошибку. введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Denis640Kb

Возможно этого просто нет в Вашем коде, но Вам необходимо сначала задать параметры элементам вместо login на те, которые Вы проверяете:
Проверил у себя - в таком виде всё работает корректно.

<?php
    // Получение данных из формы
    $surname = filter_var(trim($_POST['surname']), FILTER_SANITIZE_STRING);
    $name = filter_var(trim($_POST['name']), FILTER_SANITIZE_STRING);
    $pass = filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING);

    if(mb_strlen($name) < 5 || mb_strlen($name) > 15) {
        echo "Недопустимая длина имени (от 6 до 15 символов)";
        exit();
    } else if (mb_strlen($surname) < 5 || mb_strlen($surname) > 15) {
        echo "Недопустимая длина фамилии (от 6 до 15 символов)";
        exit();
    } else if (mb_strlen($pass) < 5 || mb_strlen($pass) > 20) {
        echo "Недопустимая длина пароля (от 6 до 20 символов)";
        exit();
    } 

    $pass = md5($pass."dfgsdfgsdvcxb22");

    // Подключение к базе данных
    require "../blocks/connect.php";
    $mysql->query("INSERT INTO `users` (`name`, `surname`, `pass`) VALUES('$name', '$surname', '$pass')");

    $mysql->close();

    header('Location: /');
?>

Второй файл:

<?php
    // Получение данных из формы
    $surname = filter_var(trim($_POST['surname']), FILTER_SANITIZE_STRING);
    $pass = filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING);
    $login = filter_var(trim($_POST['name']), FILTER_SANITIZE_STRING);

    $pass = md5($pass."dfgsdfgsdvcxb22");

    // Подключение к базе данных
    require "../blocks/connect.php";

    $result = $mysql->query("SELECT * FROM `users` WHERE `surname` = '$surname' AND `pass` = '$pass'");
    $user = ($result_set); // Тут не понятно откуда у Вас берётся переменная $result_set 
    if(count($user) == 0) {
        echo "Такой пользователь не найден";
        exit();
    }

    setcookie('user', $user['name'], time() + 3600, "/");

    $mysql->close();

    header('Location: /');
?>
→ Ссылка