if(empty($_POST['inputEmail'])) {
function valid_mail($str) {
return filter_var($str, FILTER_VALIDATE_EMAIL) ? $str : false;
}
echo 'Please enter a valid email address' . "<br />";
}
回答
if(isset($_POST['submit'])) {
if(empty($_POST['inputEmail']) || false === filter_var($_POST['inputEmail'], FILTER_VALIDATE_EMAIL)) {
echo 'Please enter an email address' . "<br />";
}
elseif(empty($_POST['inputPostcode'])) {
echo 'Please enter postcode' . "<br />";
}
else {
// save to db here (no errors occured)
// return; (or redirect, or whatever)
}
}
// display form here
您也可以使用required
-attribute所需表單字段。您也可以使用HTML5-input-types,如<input type="mail" />
進行客戶端檢查。這兩種方法都可以被「黑客攻擊」,但是阻止「正常」用戶發送未正確填寫的表單。使用PHP的filter_var-功能來驗證服務器上的郵件地址。
真棒謝謝feeela! – user921334
使用臨時變量:
$ VALIDATION_ERROR = FALSE;
if($_POST['inputEmail'] == ''){
echo 'Please enter an email address' . "<br />";
$validation_error = true;
}
if($_POST['inputPostcode'] == '')
echo 'Please enter postcode' . "<br />";
$validation_error = true;
}
// no error occured
if(!validation_error){
//do stuff
}
更好的郵件驗證功能可能是:
/**
* Return the mail address if it's valid or false otherwise
*/
function valid_mail($str) {
$mail_regexp = '/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/';
preg_match($mail_regexp, $str, $matches);
return strcmp($str, $matches[0]) ? false : $str;
}
或使用PHP filter_var(感謝@feela)
function valid_mail($str) {
return filter_var($str, FILTER_VALIDATE_EMAIL) ? $str : false;
}
這個正則表達式只能匹配ASCII碼中的電子郵件地址,那麼IDN呢?見:http://stackoverflow.com/questions/3613589/php-email-validation – feeela
jbrond感謝您的幫助到目前爲止。我不確定在哪裏添加電子郵件驗證功能。我在哪裏包括它?我有上面的更新代碼。 – user921334
@ user921334我已更新我的答案,以包含有效性檢查。請回復您的問題 - 編輯,因爲您的問題不再可用。這很令人困惑,因爲答案並不真正符合新的問題。只需附加更新的代碼,而不是替換它... – feeela
- 1. MySQL的支票
- 2. 格式ReSharper的支持字段
- 3. PHP MySQL - 帶空格的搜索字段
- 4. php的imap_fetch_overview()日期字段格式作爲MySQL的時間戳
- 5. CompareValidator如下貨幣支票不與法國格式的數字
- 6. JSON格式的MySQL更新字段
- 7. PHP優化支票
- 8. PHP支票號碼
- 9. PHP DateTime支持的格式
- 10. Python的MySQL的支票之前插入
- 11. PHP數字格式 - 與支架
- 12. MySQL的插入與多張支票
- 13. 檢票口虛擬表格字段
- 14. 在mysql中格式化日期字段
- 15. 從MYSQL格式化日期字段
- 16. PHP通過支票0 == NULL
- 17. 支票簿餘額PHP
- 18. PHP CUSIP支票號碼
- 19. 的Javascript支票形式的onsubmit
- 20. mysql-php blob字段?
- 21. php mysql位字段
- 22. MySQL的日期格式不支持
- 23. Java創建支票形式
- 24. MySQL中1NF中的表格格式php
- 25. 格式的編碼字段
- 26. 格式化Resharper支持字段的屬性在C#
- 27. 不支持的格式字符使用字符串格式化
- 28. MySQL PHP搜索多字段字段
- 29. 如何解碼這種格式的mysql字段中的數據?
- 30. MySQL的VARCHAR字段或PHP的substr
你可以發佈你的代碼的其餘部分請。 – Bruce
考慮讓JavaScript /客戶端驗證 –
@Haim Evgi - 只是一個加法,而不是獨立! –