2012-10-06 95 views
-1

我有一個註冊腳本,我想驗證人們已經正確輸入他們的電子郵件,但這似乎並沒有工作?任何ideac?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

我假設你沒有寫但是從某處複製它,你需要確保任何代碼的來源是最新的。 – 2012-10-06 01:39:56

+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_var()功能與不斷FILTER_VALIDATE_EMAIL正確的方法。

filter_var($email, FILTER_VALIDATE_EMAIL) 

這將返回true所提交的電子郵件是井字形,否則將返回false。您可以在Filter Reference上閱讀有關過濾器的更多信息。

+1

[文件過濾器](http://www.php.net/manual/en/filter.filters.php) – sachleen