2016-06-07 3 views
-1

Я сделал форму, где люди могут ввести свой адрес электронной почты. Проблема в том, что теперь они могут добавлять все, что захотят, в поле, я хочу, чтобы они могли только ввести действительное письмо. Я нашел этот фрагмент кода в Интернете.Проверка подлинности электронной почты не работает соответственно

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    $emailErr = "Invalid email format"; 
} 

И реализовать это в моем PHP отправки почты код:

<?php 

$email = $_POST['subscribefield']; 

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    $emailErr = "Invalid email format"; 
} 


$to = "[email protected]"; 
$subject = "Abonee voor de nieuwsbrief"; 
$body = "$email \n Heeft zich aangemeld voor de nieuwsbrief"; 

mail($to, $subject, $body); 

echo "your mail was sent"; 
?> 

Тем не менее не работает. Что я сделал не так?

Спасибо заранее,

Kevin

+0

Что вы имеете в виду _ "Тем не менее не работает" _? Что не работает? Каков вход, который вы используете, и каков ожидаемый результат? – 1615903

+0

Я в основном набрал что-то вроде «lalala», и он все равно отправлен: x @ 1615903 – Kevin

+1

Вы не используете переменные '$ email' или' $ emailErr' в любом месте вашего кода. Вы всегда отправляете 'test @ hotmail.com'. – 1615903

ответ

1

Вы не должны, если заявление в любом месте, что бы проверить $ emailErr. Такие, как:

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    $emailErr = "Invalid email format"; 
} 

if(isset($emailErr) === FALSE) 
{ 
    $to = "[email protected]"; 
    $subject = "Abonee voor de nieuwsbrief"; 
    $body = "$email \n Heeft zich aangemeld voor de nieuwsbrief"; 

    mail($to, $subject, $body); 

    echo "your mail was sent"; 
} 

Или просто

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    echo "Invalid email format"; 
    die(); 
} 
1

Вы не выводит сообщение об ошибке. Попробуйте что-то вроде этого:

if (filter_var('[email protected]', FILTER_VALIDATE_EMAIL)) { 
     echo 'VALID'; 
    //Do you email send stuff 

    } else { 
     echo 'NOT VALID'; 
    //Display the error and don't send the mail 
    } 
2

вы не должны пытаться отправить, если адрес электронной почты неправильно.

$email = $_POST['subscribefield']; 

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) 
    { 
    $emailErr = "Invalid email format"; 
    } 
    else 
    { 
    $to = "[email protected]"; 
    $subject = "Abonee voor de nieuwsbrief"; 
    $body = "$email \n Heeft zich aangemeld voor de nieuwsbrief"; 
    mail($to, $subject, $body); 
    echo "your mail was sent"; 
    } 

?> 
Смежные вопросы