我有一个表单,我正在使用jQuery validate插件。
我也使用遥控器检查用户名和电子邮件是否可用,但我总是从脚本中回复。
这里是jquery验证部分:
$(document).ready(function () {
$('#registration').validate({
rules: {
email: {
email: true,
remote:{
url: "./php/checkemail.php",
type: "POST",
}
},
username: {
minlength: 4,
maxlength: 16,
remote: {
url: "./php/checkusername.php",
type: "POST",
}
},
messages: {
email: {
email: "Please enter a valid e-mail address.",
remote: "This email is already registered.",
},
username: {
minlength: "Your username must be at least 4 characters long but less than 16",
maxlength: "Your username must be at least 4 characters long but less than 16",
remote: "This username is already registered.",
},
submitHandler: function(form) {
$('#registration').ajaxSubmit();
return false;
},
});
});
这是checkemail.php文件:
$mysqli = mysqli_init();
if(isset($_POST['email'])) {
$email = mysqli_real_escape_string(strtolower($_POST['email']));
$check= mysqli_query("SELECT * FROM users WHERE LOWER email = '$email'");
if(mysqli_stmt_num_rows($check)!=0) {
echo json_encode(false);
} else {
echo json_encode(true);
}
}
任何人都可以告诉我,我做错了什么以及如何解决它?
此外,即使我将脚本更改为发送给我,验证脚本中的远程消息也不会显示在我的表单上。
答案 0 :(得分:0)
我认为远程功能正在检查字符串。
所以试试这个:
if(mysqli_stmt_num_rows($check)!=0) {
echo 'false';
} else {
echo 'true';
}
答案 1 :(得分:0)
所以,问题是我使用的php已被弃用,当我将其更改为新版本时我做错了...所以正确的做法是:
如果(isset($ _ POST [ '电子邮件']))
{
$ email = mysqli_real_escape_string($ link,$ _POST ['email']);
$ check = mysqli_query($ link,“SELECT * FROM users WHERE email ='”。$ email。“'”)或die(mysqli_error($ link));
如果(mysqli_num_rows($检查)!= 0)
{
echo 'false';
}否则{
echo 'true';
}
}
mysqli_close($链路);
>
其中$ link是与mysql数据库的连接:
$ link = mysqli_connect(“$ db_host”,“$ db_username”,“$ db_password”,“$ db_database”)或死(“错误”.mysqli_error($ link));
现在它工作得很好。