2016-06-07 4 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"; 
?> 

가 여전히 작동하지 않습니다. 내가 뭘 잘못 했니? 사전에

감사합니다,

케빈

+0

당신은 _ "아직 작동하지 않습니다"_ 무엇을 의미합니까? 작동하지 않는 것은 무엇입니까? 사용중인 입력은 무엇이며 기대되는 결과는 무엇입니까? – 1615903

+0

필자는 기본적으로 "lalala"와 같은 형식을 입력했으며 여전히 x : 1615903을 입력했습니다. – Kevin

+1

코드의 어디에서나 $ email 또는 $ emailErr 변수를 사용하지 않습니다. 항상 'test @ hotmail.com'으로 보내고 있습니다. – 1615903

답변

1

을 당신은 필요가 없습니다. 예를 들면 :

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

오류를 출력 아닙니다. 이 같은 시도 : 문이 어디 그 emailErr $를 확인한다면

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"; 
    } 

?> 
관련 문제