2012-10-06 4 views
-1

나는 등록 스크립트를 가지고 있는데, 사람들이 이메일에 정확하게 입력했는지 확인하고 싶지만,이게 제대로 작동하지 않는 것 같습니까? 어떤 ideass?PHP 레지스터 스크립트가 이메일을 확인하지 않음

if ($_POST){ 
$email=stripslashes($_POST['email']); 
$valid=eregi('^([0-9a-z]+[-._+&])*[0-9a-z][email protected]([-0-9a-z]+[.])+[a-z]{2,6}$',$email); 
if (!$email && !$valid){ 
    $_SESSION['error'] = "I'm sorry but the email you specified is not valid.  Please enter a valid email"; 
    unset($email); 
    header("Location: register.php"); 
    exit; 

} 
    } 
+2

내가 작성하지 않았지만 어딘가에서 복사했다고 가정하면 코드의 소스가 최신인지 확인해야합니다. –

+0

죄송합니다. 저는 PHP를 배우기 때문에 다른 소스에서 복사 한 다음 작동하게하는 것이 더 쉽다고 생각합니다. 그렇지만 많은 소스가 구식이라는 문제가있었습니다! – neeko

+0

'eregi' 함수는 PHP 5.3에서 더 이상 사용되지 않으므로 다시 사용하지 않는 것이 좋습니다. 또한이 질문은 이미 http://stackoverflow.com/questions/1374881/how-to-change-phps-eregi-to-preg-match/1374904#1374904에서 답변되었습니다. 그 대답을 확인하십시오. –

답변

7

PHP에서 이메일 상수 FILTER_VALIDATE_EMAILfilter_var() 기능을 사용하고 검증하는 올바른 방법. 제출 된 이메일이 잘 모양의 경우

filter_var($email, FILTER_VALIDATE_EMAIL) 

이 그렇지 않으면 false을 반환합니다 true를 반환합니다. 필터에 대한 자세한 내용은 Filter Reference에서 확인할 수 있습니다.

+1

[필터 문서] (http://www.php.net/manual/en/filter.filters.php) – sachleen

관련 문제