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 - 只是一个加法,而不是独立! –