0
我有一些if語句驗證提交給我的表單的電子郵件地址。然而,即使並非滿足以下所有條件,表格也會提交。它似乎尊重的是filter_var條件。爲什麼會這樣做?失敗的驗證是最後一條說明電子郵件無法訪問的聲明。它表示電子郵件地址無法訪問。但它反正通過電子郵件提交表格。 $擦洗是一個功能我在表單中使用,以從可能的垃圾郵件儘管有錯誤提交電子郵件驗證表格
if (isset($scrubbed["email"])) {
if (strlen($scrubbed["email"]) > 254) {
echo "<p>The email address is too long: it must be 254 or less.</p>";
}
// Validate syntax with PHP.
if ((($email = filter_var($scrubbed["email"], FILTER_VALIDATE_EMAIL)) === false)) {
echo "<p>The email address has an invalid syntax.</p>";
}
// Validate DNS reachability.
$host = substr($email, strrpos($email, "@") + 1) . ".";
if (!checkdnsrr($host, "A") && !checkdnsrr($host, "AAAA") && !checkdnsrr($host, "MX")) {
echo "<p>The email address is unreachable.</p>";
}
}
驗證失敗,什麼是$ scrubbed? –
直到表單提交後才運行PHP驗證。如果你想阻止提交的表單,你需要在客戶端驗證它 – Anigel
失敗的驗證是最後一條說明電子郵件無法訪問的if語句。它表示電子郵件地址無法訪問。但它反正通過電子郵件提交表格。 $ scrubbed是我在表單中用來清除可能的垃圾郵件中的表單域的函數。 – user3286022