2016-04-01 6 views
0

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

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

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

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

+0

Это не возможно на стороне сервера, вам понадобится клиентская часть как javascript – Fabio

+0

Я использую jscript из jquery.validate.js, если это то, о чем вы говорите. –

+0

это скриншот с того момента, когда в поле электронной почты вводится существующий адрес электронной почты [2]: http://i.stack.imgur.com/Y1bTP.jpg –

ответ

0

От documentation:

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

Итак, вам нужно изменить свой is_valid на true.

+0

путем изменения is_valid к истинным вы имеете в виду из этой строки кода" функция get_email общественности ($ электронная почта) \t \t \t { \t \t \t \t $ this-> sql = "SELECT 'vemail' FROM 'wmldir_users' WHERE vemail = '". $ Email."'"; \t \t \t \t \t \t $ this-> data = $ this-> fetch_row_assoc ($ this-> sql); \t \t \t если (! Пустые ($ this-> данные)) \t \t \t \t возвращение $ this-> данные; \t \t \t еще { \t \t \t \t возвращение ложным; \t \t \t} \t \t \t \t} "? –

+0

Да вместо возврата $ this-> Данные вернуть истинный Else проверка не будет работать – JahShaka

+0

я изменил его на истинный теперь я получаю ложь, когда я вхожу любой адрес электронной почты ли это является новым или существует в базе данных mysql –