【发布时间】:2012-09-06 19:55:34
【问题描述】:
我有一个关于 php 验证的问题,我有这个脚本
$(document).ready(function(){
// validate signup form on keyup and submit
var validator = $("#contactform").validate({
rules: {
email: {
email: true,
required: true,
remote: { url: "test.php", type: "post" }
}
},
messages: {
email: {
email: "Enter a valid email adress",
required: "This input is required",
remote: "Email adress is in use"
}
},
// set this class to error-labels to indicate valid fields
success: function(label) {
label.addClass("checked");
}
});
});
test.php 中的验证脚本是
define('__ROOT__', dirname(dirname(dirname(__FILE__))));
require_once (__ROOT__.'/config.php');
$email = mysql_real_escape_string($_POST['email']);
$SQL = $mysqli->query("SELECT * FROM users WHERE email='$email'");
If($SQL->num_rows == 0) {
echo 'true';
} else {
echo 'false';
}
如何使 php 文件的验证更复杂,例如:我想添加一个规则来检查电子邮件是否有效(以防万一有人没有激活 javascript)但是如果我尝试类似如果电子邮件地址在数据库中,验证脚本不会向我返回错误消息
If(filter_var($email, FILTER_VALIDATE_EMAIL) == false) {
$SQL = $mysqli->query("SELECT * FROM users WHERE email='$email'");
If($SQL->num_rows == 0) {
echo 'true';
} else {
echo 'false';
}
}
【问题讨论】:
-
验证怎么破? PHP 错误,MySQL 错误,不期望正确的输出.. 等等?
-
如果我在表单中输入数据库中存在的电子邮件地址,它不会返回错误。
-
数据库中存在还是不存在?
-
" 我想添加一个规则来检查电子邮件是否有效(以防万一有人没有激活 javascript)" 那么,您想从服务器端验证电子邮件格式还是什么? FILTER_VALIDATE_EMAIL 没有这样做吗?
-
@dbf 存在于数据库中
标签: php jquery validation