如何在提交注册表单之前检查电子邮件字段是否存在重复/现有电子邮件地址

时间:2016-04-01 21:04:38

标签: php forms email email-validation user-registration

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

注册页面的当前代码是:

<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);					
		}
  	};
?>

signup form when a new email address is being entered in the email field users table of mysql database

1 个答案:

答案 0 :(得分:0)

来自documentation

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

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