2015-03-28 4 views
1

Я последовал примеру http://formvalidation.io/examples/using-data-returned-validator/ и смог выполнить простую проверку для электронной почты и имен пользователей. Я нашел еще один демон/пример, который использует ajax для вызова сценария PHP для проверки подлинности электронной почты.Реализация проверки подлинности электронной почты с синтаксической проверкой электронной почты

То, что я не понял, заключается в том, как реализовать (объединить) проверку имени пользователя в реальном времени со стандартным валидатором, чтобы он проверял, действительно ли письмо имеет допустимый формат в дополнение к возможности использования, а не зарегистрированный участник уже. Прошивая javascript, я получил валидатор, чтобы увидеть мой php-скрипт check_email.php, используя пост AJAX.

Однако я не правильный синтаксис, чтобы сделать использование валидатор грим результата сценария PHP, чтобы вернуть сообщение, как «Дубликат» или „Электронная почта используется“ HTML, для электронной почты:.

<!-- EMAIL --> 
<div class="form-group"> 
    <div class="row"> 
    <label class="col-xs-6 control-label">Email address</label> 
    <div class="col-xs-6" style='clear:left;width: 50%;'> 
     <input type="text" class="form-control email" name="email" /> 
    </div> 
    </div> 
</div> 

соответствующая часть JavaScript:.

<script> 
    $(document).ready(function() { 
    $('#taskForm').formValidation({ 
     framework: 'bootstrap', 
     icon: { 
     // required: 'fa fa-asterisk', 
     valid: 'glyphicon glyphicon-ok', 
     invalid: 'glyphicon glyphicon-remove', 
     validating: 'glyphicon glyphicon-refresh' 
     }, 
     fields: { 

     'email': { 
      validators: { 
      notEmpty: { 
       message: 'The email address is required' 
      }, 
      emailAddress: { 
       message: 'The input is not a valid email address' 
      } 
      , 
      remote: { 
       type: 'POST', 
       url: 'check_email.php', 
       message: 'Duplicate or whatever ...', 
       cache: false, 
       success: function(result){ 
       var result=remove_whitespaces(result); 
       if(result=='') 
       { 
        // Do something ... 
       } 
       } 
      } 
      } 
     }, 
     } 
    }) 
    }); 
</script> 

Чтобы увидеть демонстрационную форму визита http://dottedi.us/validation/validator.php Чтобы проиллюстрировать, что шашка работа живой использовать имя пользователя «SoWhat» и адрес электронной почты'[email protected] 'для проверки. У меня есть имя пользователя, работающее отдельно с au sername checker, чтобы показать, что он работает, а не желаемый метод. В настоящее время электронная почта не работает с моим кодом.

При необходимости, я могу изменить check_email.php. В настоящее время он возвращает $ HTML = 'email exists'; если это дубликат.

Вопрос: как изменить структуру, синтаксис удаленной функции, чтобы она могла использовать ответ от check_email.php?

О, а вот код PHP в check_email.php:

<?php 
include ("mysql_connection.php"); 

$HTML = ""; 
if(isset($_POST['email']) && !empty($_POST['email'])) 
{ 
    $email=strtolower(mysql_real_escape_string($_POST['email'])); 
    $query="select * from members where LOWER(email)='$email'"; 
    $res=mysql_query($query); 
    $count=mysql_num_rows($res); 

    if($count > 0){ $HTML='email exists'; }else{ $HTML=''; } 
} 

echo $HTML; 

?> 

ответ

0

я продолжал копать и нашел ответ на: http://formvalidation.io/validators/remote/

1) Изменен соответствующий JavaScript для:

remote: { 
    message: 'This email address is taken', 
    url: 'check_email.php', 
    type: 'POST' 
} 

2) Изменен check_email.php, чтобы вернуть ответ формата JSON:

if ($count > 0) { $status = false; } else { $status = true; } 

if(isset($status)) 
{ 
    $data = array(
    "valid"  => $status, 
    "email"  => $email // OPTIONAL 
); 
echo json_encode($data); 
}