簡體   English   中英

使用filter_var PHP驗證電子郵件

[英]Validate email using filter_var PHP

我有一個PHP表單可以從用戶那里獲取名稱和電子郵件。 對於電子郵件字段,我想驗證該字段是否已填寫以及電子郵件地址是否有效。 我正在使用下面的代碼

驗證是否填寫了電子郵件字段有效,但不能驗證電子郵件。

<tr>
<td align="right">
Email: 
</td><td align="left">
<input type="text" size="25" name="email" value="<? echo $_GET['email']; ? >"/">

<?
#checking if email exists
if ($error_code && !($_GET['email'])) {
echo "<b>Please include your email address.</b>";
}

# validating email
if (!filter_var(($_GET['email']), FILTER_VALIDATE_EMAIL) === true) {
echo "<b>This is not a valid email address.</b>";
}

?>

甚至在輸入電子郵件地址之前,都會出現“這不是有效的電子郵件地址”消息,並且如果我輸入了錯誤的電子郵件地址並提交表格,它也不會顯示正確的消息。 有什么問題,為什么在提交值之前顯示驗證電子郵件錯誤?

考慮測試包裝所有驗證的isset($_GET['email']) 另外,如果此數據來自表單,請檢查您的方法是否真的是GET,否則,您要使用$_POST檢查參數。

嘗試這個

if (filter_var($_GET['email'], FILTER_VALIDATE_EMAIL) != true) {
     echo "<b>This is not a valid email address.</b>";
}

在發布表單之前看到結果的原因是,您在進行驗證之前沒有檢查$_GET數組是否已設置。

所以你可以做類似..

if(isset($_GET['email'])){
    if ($error_code && empty($_GET['email'])) {
        echo "<b>Please include your email address.</b>";
    }

    if (filter_var($_GET['email'], FILTER_VALIDATE_EMAIL) != true) {
        echo "<b>This is not a valid email address.</b>";
    }
}

試試這個,請告訴我是否有幫助

<?
#checking if email exists
if ($error_code && !($_GET['email'])) {
echo "<b>Please include your email address.</b>";
}

//# validating email
if (!filter_var($_GET['email'], FILTER_VALIDATE_EMAIL)) {
echo "<b>This is not a valid email address.</b>";
}

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM