Помогите в php добавить подтверждение пароля

Помогите добавить подтверждение пароля в регистрации желательно с готовым кодом

<!doctype html>
<html lang="en">
<head>
        <title>Регистрация</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
        <link rel="stylesheet" href="css/style.css">

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        
    
</head>
<body>

    <!-- Форма регистрации -->

    <form action="validation-form/check.php" method="POST">

        <label>Логин</label>
        <input type="text" name="surname" id="surname" placeholder="Введите фамилию"><br>
        <input type="text" name="name" id="name" placeholder="Введите имя"><br>
        <label>Пароль</label>
        <input type="password" name="pass" id="pass" placeholder="Введите пароль"><br>
        <label>Подтверждение пароля</label>
        <input type="password" name="password_confirm" placeholder="Подтвердите пароль">
        <button type="submit">Зарегистрироваться</button>
        
        <p>
            У вас уже есть аккаунт? - <a href="/">авторизируйтесь</a>!
        </p>

        <?php
            if ($_SESSION['message']) {
                echo '<p class="msg"> ' . $_SESSION['message'] . ' </p>';
            }
            unset($_SESSION['message']);
        ?>

    </form>

</body>
</html>

<?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($password);

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

    $mysql->close();

    header('Location: /');
?>


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

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

Задачу проверки подтверждения пароля можно реализовать таким образом.
Если проверка при нажатии на кнопку.
Как понимаю - файл взят из контекста, добавил несколько комментариев с пояснениями: Первый файл

<?php
?>
<!doctype html>
<html lang="en">
<head>
    <title>Регистрация</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <link rel="stylesheet" href="css/style.css">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>

<!-- Форма регистрации -->

<form action="validation-form/check.php" method="POST">
    <label>Логин</label>
    <input type="text" name="surname" id="surname" placeholder="Введите фамилию" required><br>
    <input type="text" name="name" id="name" placeholder="Введите имя" required><br>
    <label>Пароль</label>
    <input type="password" name="pass" id="pass" placeholder="Введите пароль" required><br>
    <label>Подтверждение пароля</label>
    <input type="password" name="password_confirm" placeholder="Подтвердите пароль" required>
    <button type="submit">Зарегистрироваться</button>
    <p>
        У вас уже есть аккаунт? - <a href="/">авторизируйтесь</a>!
    </p>

    <?php
    if ($_SESSION['message']) {
        echo '<p class="msg"> ' . $_SESSION['message'] . ' </p>';
    }
    unset($_SESSION['message']);
    ?>

</form>

</body>
</html>

Второй файл:

<?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(isset($_POST['password_confirm'])){ // Получаем данные из формы
    $Repass = $_POST['password_confirm'];
} else {
    $Repass = "";
}

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();
}

if($Repass == $pass){
    $pass = md5($password); // Тут у Вас берётся переменная $password, а должна быть $pass скорее всего.
// Подключение к базе данных
    require "../blocks/connect.php";
    $mysql->query("INSERT INTO `users` (`name`, `surname`, `pass`) VALUES('$name', '$surname', '$pass')");

    $mysql->close();

    header('Location: /');
} else {
    echo 'Ошибка подтверждения пароля'; // Если пароли не совпадают, то выводим сообщение об ошибке. (Таким же способом можно выводить в конкретное поле, прописав в основном файле php)
    include "../help26.php"; // Если пароли не совпадают, то возвращаем на страницу ввода. Тут своё название и путь к файлу укажите.
}
?>

Второй вариант - это сделать через js.
При вводе данных в поле проверки пароля сразу проверять данные.
Если не совпадают, то выводим ошибку, если совпадают - соответствующее сообщение.

<?php
?>
<!doctype html>
<html lang="en">
<head>
    <title>Регистрация</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <link rel="stylesheet" href="css/style.css">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>

<!-- Форма регистрации -->

<form action="validation-form/check.php" method="POST">
    <div id="error"></div>
    <label>Логин</label>
    <input type="text" name="surname" id="surname" placeholder="Введите фамилию" required><br>
    <input type="text" name="name" id="name" placeholder="Введите имя" required><br>
    <label>Пароль</label>
    <input type="password" name="pass" id="pass" placeholder="Введите пароль" required><br>
    <label>Подтверждение пароля</label>
    <input type="password" name="password_confirm" placeholder="Подтвердите пароль" required>
    <button type="submit" id="reg">Зарегистрироваться</button>
    <p>
        У вас уже есть аккаунт? - <a href="/">авторизируйтесь</a>!
    </p>

    <?php
    if ($_SESSION['message']) {
        echo '<p class="msg"> ' . $_SESSION['message'] . ' </p>';
    }
    unset($_SESSION['message']);
    ?>

</form>
<script language="JavaScript">
    var z = document.getElementsByName('password_confirm');

    z[0].oninput = function () {
        var pass = document.getElementById('pass').value;
        var err = document.getElementById('error');
        if(z[0].value != pass){
            err.innerText = 'Пароли не совпадают';
        } else {
            err.innerText = 'Пароли совпадают, можно регистрироваться';
        }
    }
</script>
</body>
</html>
→ Ссылка
Автор решения: Zhandos

Вы можете реальзовать подтверждение пароля по разному, можно также использовать плагин jquery validator. Ссылка https://jqueryvalidation.org/ Используйте правило equalTo

→ Ссылка