Валидация данных в форме

143
18 июня 2022, 23:30

Создать форму для ввода электронного адреса в формате vasya.pupkin@ukr.net, пароль и подтверждение пароля. При нажатии на кнопку, должна проводиться проверка на валидность введенных данных включая проверку наличия в пароле хотя бы 3 цифры и хотя бы 1 большой буквы латинского алфавита. Вывести сообщение об успехе/неуспехе проверки валидности.

<?php
echo "<hr>";
if ($_POST['submit']) {
    if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) 
    {
        throw new Exception('некорректный адрес');
    }
    if (strlen($_POST['pass']) < 3) 
    {
        throw new Exception('длина пароля не менее 3х символов');
    }
    if ($_POST['rpass'] !== $_POST['pass']) 
    {
        throw new Exception('пароли не совпадают');
    }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Стоп Валидация</title>
</head>
<body>
    <form action="" class="form1" method="POST">
        
        <input class="inp" type="text" name="email" placeholder="Email: vasya.pupkin@ukr.net">
        <br><br>
       <input class="inp" type="password" name="pass" placeholder="Password">
       <br><br>
       <input class="inp" type="password" name="rpass" placeholder="Repeat password">
       <br><br>
       <button name="submit">Отправить</button>
    </form>
    
</body>
</html>

Сейчас выдает ошибку, как привязать это к кнопке? (чтоб после нажатия проверялась валидность)

Answer 1
<?php
if (isset($_POST['submit'])) {
    if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        if (strlen($_POST['pass']) > 3) {
            if ($_POST['rpass'] == $_POST['pass']) {
                echo 'все ок!';
                // Тут код если валидация пройдена
            } else {
                echo '<font color="red">пароли не совпадают</font>';
            }
        } else {
            echo '<font color="red">длина пароля не менее 3х символов</font>';
        }
    } else {
        echo '<font color="red">некорректный адрес</font>';
    } 
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Стоп Валидация</title>
</head>
<body>
    <form action="" class="form1" method="POST">
        
        <input class="inp" type="text" name="email" placeholder="Email: vasya.pupkin@ukr.net">
        <br><br>
       <input class="inp" type="password" name="pass" placeholder="Password">
       <br><br>
       <input class="inp" type="password" name="rpass" placeholder="Repeat password">
       <br><br>
       <button name="submit">Отправить</button>
    </form>
    
</body>
</html>
READ ALSO
Проблема с WP_Query

Проблема с WP_Query

Скажите пожалуйста, в чем тут ошибка, мне нужна проверка по 2 полях для цены, но в таком варианте как на скрине не работает, страница не загружается,...

162
как сделать один ajax обработчик на несколько форм

как сделать один ajax обработчик на несколько форм

Хочу что бы отправляло текущую форму по клику на кнопку, в формах одинаковый классform и кнопки

384
Заход на сайт с сохраненным аккаунтом

Заход на сайт с сохраненным аккаунтом

Прочитал https://htmlwebru/php/example/avtorizacija2

469