[英]How to get error being returned by FILTER_VALIDATE_EMAIL
我目前正在使用php。 我當前的表單應該為電子郵件模板生成一些條件。 它具有“收件人”,“抄送”和“密件抄送”字段。 我當前的“ To”代碼工作正常。 然后,我想一次驗證多封電子郵件。 例如,如果有人輸入example @ example.com,test @ test.com等。我希望它檢查每一個。 由於某種原因,它引發了錯誤。 下面是我當前的php。 我想知道是否可以通過某種方式查看錯誤所在。 有什么想法或建議嗎?
$errTo = $_POST['To'];
$errCC = $_POST['CC'];
$errBCC = $_POST['BCC'];
function died()
{
$error = false;
return $error;
}
我在這里遇到問題
if($_POST['submit'] == 'Submit')
{
if(filter_var($errTo, FILTER_VALIDATE_EMAIL))
{
if(isset($errCC))
{
$errCC = explode(",", $errCC);
$count = count($errCC);
for($i=0; $i<$count; ++$i)
{
$errCC[$i] = str_replace(" ", "",$errCC[$i]);
echo $errCC[$i];
if(!filter_var($errCC[$i], FILTER_VALIDATE_EMAIL))
{
$error = died();
}
}
}
該函數在失敗時總是返回false,因此您需要自己處理原因。 原因始終是它不是有效的電子郵件地址。 它不會告訴您。 This email is missing a @ symbol
。
$errors = array();
if($_POST['submit'] == 'Submit')
{
// Check the to field and add it to the error array if its wrong
if(!filter_var($errTo, FILTER_VALIDATE_EMAIL))
{
$errors[] = $errTo;
}
if(isset($errCC))
{
$errCC = explode(",", $errCC);
$count = count($errCC);
for($i=0; $i<$count; ++$i)
{
$errCC[$i] = str_replace(" ", "",$errCC[$i]);
echo $errCC[$i];
if(!filter_var($errCC[$i], FILTER_VALIDATE_EMAIL))
{
// Add to our array the invalid emails
$errors[] = $errCC[$i];
}
}
}
// Check if we have any invalid emails
if(count($errors))
{
// Display each email, remember to strip out 'badness' if you are outputting user variable to the browser
foreach($errors as $err)
{
echo strip_tags($err) . " is not an email address<br />";
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.