Как проверить поле электронной почты на наличие дублирующего / существующего адреса электронной почты перед отправкой регистрационной формы

Обновление: проверка адреса электронной почты для поля электронной почты возвращает «адрес электронной почты уже используется» при вводе адреса независимо от того, является ли адрес электронной почты новым или существует в базе данных mySQL. Я хотел бы, чтобы он возвращал ошибку только в том случае, если электронное письмо существует в поле электронной почты таблицы пользователей в базе данных.

Текущий код страницы регистрации:

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

0

Решение

От документация:

Ответ сервера должен быть строкой JSON, которая должна иметь значение «истина» для допустимых элементов и может быть «ложь», неопределенная или нуль для недопустимых элементов, используя сообщение об ошибке по умолчанию. Если ответ сервера является строкой, например. «Это имя уже занято, попробуйте вместо этого peter123», эта строка будет отображаться в виде пользовательского сообщения об ошибке вместо значения по умолчанию.

Поэтому вам нужно изменить свой is_valid на true.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector