如何在提交注册表格之前检查电子邮件字段中的重复/现有电子邮件地址


How To Check Email Field For Duplicate/Existing Email Address Prior To Submitting Sign-Up Form

更新:无论电子邮件地址是新的还是存在于mySQL数据库中,在输入地址时,对电子邮件字段的电子邮件地址检查都会返回"电子邮件地址已在使用中"。我希望它只在数据库中users表的电子邮件字段中存在电子邮件时返回错误。

注册页面的当前代码为:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
	<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.js"></script>
	<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.min.js"></script>	
	<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/additional-methods.js"></script>	
	<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/additional-methods.min.js"></script>			
	<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>	
	<script type="text/javascript">
$().ready(function(){		
	$("#register").validate({
		errorElement: 'span',
		errorPlacement: function (error, element) {
		    if (element.attr("type") == "checkbox") {
		        error.insertAfter($(".term"));
		    } else {
				error.insertAfter(element);
		    }
		},
		rules: {
		    su_email		: { 
				required: true,
				email: true,
				remote: "/email_check.php"			
			},
		    su_password		: { 
				minlength: 6, 
				required: true
			},
		    su_conpassword	: { 
				equalTo : "#su_password"
			},
		    su_name			: { 
				minlength: 3, 
				required: true
			},
		    su_phone		: { 
				required: true
			},
		    su_city			: { 
				required: true
			},
		    su_country		: {
				required: true
			},
		    su_gender		: { 
				required: true 
			},
		    su_quest		: { 
				required: true
			},
		    su_ans			: { 
				required: true
			},
		    su_terms		: { 
				required: true 
			}
		},
		messages: {					
			su_email: {
				required: "Please enter your email address",
				email: "Please enter a valid email address",
				remote: jQuery.validator.format("{0} is already in use")
			},
			su_password: {
				required: "Provide a password",
				minlength: jQuery.validator.format("Enter at least {0} characters")
			},
				su_conpassword: {
				equalTo: "Repeat your password"				
			},
				su_name: {
				required: "Enter your full name",
				minlength: jQuery.validator.format("Enter at least {0} characters")
			},
				su_phone: {
				required: "Enter your phone number"
			},
				su_city: {
				required: "Enter your city"						
			},
				su_country: {
				required: "Select your country"						
			},
				su_gender: {
				required: "Select your gender"						
			},
				su_quest: {
				required: "Select a security question"						
			},	
				su_ans: {
				required: "Select a security answer"						
			},
				su_terms: {
				required: "You must agree to terms to join"						
			}
		}
	});
		
	$('.condition').click(function () {	
		if ($(this).is(':checked')) {
		    $('#termscondition').dialog({
		        modal: true,
		        width: 600,
				buttons: {
					Ok: function() {
					    $( this ).dialog('close');
					}		            
				}
		    });
		} else {
		     $('#termscondition').dialog('close');
		}
	});
});
</script>
<?php	
  	include('includes/inc-public.php');
  	include('includes/classes/class.user.php');
	$user = new User();
	$email = $_GET['su_email'];
	$valid = false;
	header('Content-Type: application/json');	
	
	if(!is_null($email)){		
		$is_valid = $user->get_email($email);
		if($is_valid){
  			echo json_encode($is_valid);
		}
  		else{
			echo json_encode($valid);					
		}
  	};
?>

在电子邮件字段中输入新电子邮件地址时的注册表单mysql数据库的用户表

来自文档:

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

因此,您需要将is_valid更改为true。

相关文章: