Próbuję więc sprawdzić, czy e-mail jest ważny, wiem, że mogę używać tylko JS dla tego, ale wolę drogę. Oto, co robię

//Get data
if(isset($_POST['email'])){
    $email = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8')
}
else{
    header('Location: /');
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
    echo 1;
}
else{
    echo 0;
}

I mój Js.

    $(document).ready(function() {
    //listens for typing on the desired field
    $("#email").keyup(function() {
        //gets the value of the field
        var email = $("#email").val(); 

        //here is where you send the desired data to the PHP file using ajax
        $.post("../classes/validate.php", {email:email},
            function(result) {
                if(result == 1) {
                    //Email is valid
                    console.log("Good");
                }
                else {
                    //Email is invalid
                    console.log("Bad");
                }
            });
     });
});

Teraz bez względu na to, co wchodzę, zawsze powraca Bad. Nawet z ważnym e-mailem. Jakieś pomysły?

1
user302975 19 sierpień 2014, 03:04

2 odpowiedzi

Najlepsza odpowiedź

Brakuje średnika zaraz po przechowywaniu wiadomości e-mail jako zmiennej.

//Get data
if(isset($_POST['email'])){
    $email = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8');
}
else{
    header('Location: /');
}
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
    echo 1;
}
else{
    echo 0;
}
1
Idris 18 sierpień 2014, 23:13

Nie należy używać HTMLSpecialchars () przed walidowaniem. Używaj go tylko do prezentacji, tj. Podczas wysyłania wiadomości e-mail w HTML.

1
user715517 18 sierpień 2014, 23:07