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. CompareValidator如下貨幣支票不與法國格式的數字
- 5. JSON格式的MySQL更新字段
- 6. PHP支票號碼
- 7. Python的MySQL的支票之前插入
- 8. 檢票口虛擬表格字段
- 9. 從MYSQL格式化日期字段
- 10. 在mysql中格式化日期字段
- 11. 支票簿餘額PHP
- 12. php mysql位字段
- 13. MySQL中1NF中的表格格式php
- 14. Java創建支票形式
- 15. 格式化Resharper支持字段的屬性在C#
- 16. MySQL的VARCHAR字段或PHP的substr
- 17. PHP/MySQL多個投票
- 18. php-mysql投票系統?
- 19. PHP和MySQL票數問題?
- 20. MySQL的價格與股票比較
- 21. 格式DateTimeField字段
- 22. PHP mySQL這個月的投票?
- 23. 的MySQL/PHP邏輯「投票」系統
- 24. Mysql NULL字段和php isset?
- 25. 訪問MySQL奇怪的價格字段
- 26. 報告 - 數字字段的格式
- 27. 爲HighCharts格式化正確的JSON格式的PHP/MySQL數據
- 28. 不支持的格式字符警示
- 29. 不支持的格式字符
- 30. 不支持的格式字符'{'
你可以發佈你的代碼的其餘部分請。 – Bruce
考慮讓JavaScript /客戶端驗證 –
@Haim Evgi - 只是一個加法,而不是獨立! –