ajax php проверка формы работает неправильно - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть приведенный ниже код jquery и сценарий обработки PHP, который я написал для получения данных почты с помощью ajax и проверки, а затем возврата ошибок. Но при отправке формы он всегда возвращает сообщение Success: form validated, даже если я ввожу адрес электронной почты и номер телефона в неправильном формате. Они не проходят проверку. Как я могу исправить эту проблему? Заранее спасибо.

Jquery

<script>
    // on form's send button click, send post data for processing via ajax
    $(document).ready(function(){
        $('#email-form').on('submit', function (e) {
            // disable page reloading upon submit
            e.preventDefault();

            // get form values
            var name = $('name').val();
            var email = $('email').val();
            var tel = $('tel').val();
            var subject = $('subject').val();
            var msg = $('msg').val();

            // send data using ajax
            $.ajax({
                type: 'post',
                url: 'ajax-email.php',
                dataType: 'json',
                data: {name:name, email:email, tel:tel, subject:subject, msg:msg},
                success: function (data) {
                    if (data.code == 1) {
                        alert("Success: " +data.msg);
                    }
                    else {
                        alert("Error: "  +data.msg);
                    }
                }
            });
        }); 
    });
</script>

ajax - электронная почта. php

<?php

$errorMsg = '';

// get post values to variables
$name = $_POST['name'];

//check email
if (!empty($_POST['email'])) {
    if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $errorMsg = 'Invalid email format';
    }
    else {
        $email = trim($_POST['email']);
    }
}

// check phone number
if (!empty($_POST['tel'])) {
    if (!filter_var($_POST['tel'], FILTER_SANITIZE_NUMBER_INT)) {
        $errorMsg .= 'Invalid phone number';
    }
    else {
        $tel = $_POST['tel'];
    }
}

// get form subject and message
$subject = $_POST['subject'];
$msg = $_POST['msg'];

if (empty($errorMsg)) {
    $success = 'form validated';
    echo json_encode(['code' => 1, 'msg' => $success]);
}
else {
    echo json_encode(['msg' => $errorMsg]);
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...