Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用jquery验证插件查找重复的电子邮件_Php_Jquery_Mysql_Validation - Fatal编程技术网

Php 使用jquery验证插件查找重复的电子邮件

Php 使用jquery验证插件查找重复的电子邮件,php,jquery,mysql,validation,Php,Jquery,Mysql,Validation,我有一个注册页面,我用它验证所有字段条目。如何使用jquery验证表单以检查mysql数据库中的重复项?我尝试使用远程方法,但当我键入数据库中已有的电子邮件时,什么也没发生 注册.php $("#feedbackForm").validate({ rules: { email: { required: true, email: true, remote: "inc/check_email.php"

我有一个注册页面,我用它验证所有字段条目。如何使用jquery验证表单以检查mysql数据库中的重复项?我尝试使用远程方法,但当我键入数据库中已有的电子邮件时,什么也没发生

注册.php

$("#feedbackForm").validate({
    rules: {
        email: {
            required: true,
            email: true,
            remote: "inc/check_email.php"
        }
    },
    messages: {
        email: {
            email: "Insert valid adress",
            required: "Please complete email field",
            remote: "Email is already in use, please change it."
        }
    }
});
/inc/check_email.php

<?php

include('config.php');

$email = $_POST['email'];
$query = mysql_query("SELECT * FROM table WHERE email  = '" . $email . "'");

if (mysql_num_rows($query) > 0) {
    return true;
} else{
    return false;
}
来自:

服务器端响应必须是JSON字符串,对于有效元素,该字符串必须为“true”;对于无效元素,该字符串可以为“false”、未定义或null,使用默认错误消息。如果服务器端响应是一个字符串,例如“已使用该名称,请改用peter123”,则此字符串将显示为自定义错误消息,而不是默认值

因此,您需要将if更改为:

$array = ['email' => 'true'];
if (mysql_num_rows($query) > 0) {
   $array['email'] = 'Email is duplicated';
}

echo json_encode($array);
此外,您应该将db引擎更改为pdo或mysqli。Mysql_*函数已弃用。

请查看此url

jQuery(函数(){
$.mockjax({
url:“login.action”,
响应:功能(设置){
var user=settings.data.match(/user=(.+?)($|&)/)[1],
password=settings.data.match(/password=(.+?)($|&)/)[1];
如果(密码!=“foobar”){
this.responseText=“您的密码错误(必须是foobar)。”;
返回;
}
this.responseText=“嗨”+用户+”,欢迎回来。“;
},
答复:200,
答复时间:500
});
//显示一个简单的加载指示器
var loader=jQuery(“”)
.css({
职位:“相对”,
顶部:“1em”,
左:“25em”,
显示:“内联”
})
.附件(“正文”)
.hide();
jQuery().ajaxStart(函数(){
loader.show();
}).ajaxStop(函数(){
loader.hide();
}).ajaxError(函数(a、b、e){
投掷e;
});
var v=jQuery(“#表单”)。验证({
submitHandler:函数(表单){
jQuery(表单).ajaxSubmit({
目标:“结果”
});
}
});
jQuery(“#重置”)。单击(函数(){
v、 resetForm();
});
});

插件需要一个JSON,谢谢大家

if (mysql_num_rows($query) > 0) {
echo json_encode(FALSE);
} else{
echo json_encode(TRUE); 
}

可能插件需要一个JSON<代码>真/假
无法通过axaj callUse正确返回。JQUERY中的$.validator.addMethod必须返回“真”或“假”,而不是真或假。返回必须是像Robert所说的json格式。
if (mysql_num_rows($query) > 0) {
echo json_encode(FALSE);
} else{
echo json_encode(TRUE); 
}