我有关于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';
}
}
答案 0 :(得分:1)
remote
与jquery.validate
的使用存在一些问题。检查您是否执行了以下操作:
1)请确保您仅使用jQuery版 1.6.1 及以上版本。
2)使用“synchronous”选项进行远程执行(默认为异步),并将async
选项设置为false
。
<强>用法:强>
$("#contactform").validate({
rules: {
email: {
required: true,
email: true,
remote: { url:"check.php", async:false }
}
}
});