2016-04-01 1 views
0

Mise à jour: L'adresse e-mail du champ e-mail indique que l'adresse e-mail est déjà utilisée est nouveau ou existe dans la base de données mySQL. Je voudrais qu'il renvoie uniquement l'erreur lorsqu'un courrier électronique existe dans le champ de courrier électronique de la table des utilisateurs dans la base de données.Comment vérifier le champ de courrier électronique pour une adresse e-mail en double/existante avant de soumettre le formulaire d'inscription

Le code actuel pour la page d'inscription est:

<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

Ce n'est pas possible avec une langue côté serveur, vous aurez besoin de côté client comme javascript – Fabio

+0

J'utilise le jscript de jquery.validate.js si c'est ce que vous voulez dire. –

+0

ceci est la capture d'écran à partir de quand une adresse e-mail existante est entrée dans le champ de l'email [2]: http://i.stack.imgur.com/Y1bTP.jpg –

Répondre

0

De documentation:

La réponse Serverside doit être une chaîne JSON qui doit être "vrai" pour éléments valides, et peuvent être "faux", indéfini ou null pour les éléments non valides, en utilisant le message d'erreur par défaut. Si la réponse côté serveur est une chaîne, par exemple. "Ce nom est déjà pris, essayez plutôt peter123", cette chaîne sera affichée comme un message d'erreur personnalisé à la place de la valeur par défaut.

Vous devez donc remplacer is_valid par true.

+0

en changeant la is_valid true-vous dire de cette ligne de code" fonction publique get_email ($ email) \t \t {\t \t \t \t \t $ this-> sql = "SELECT 'vemail' FROM 'wmldir_users' O v vemail = '". $ Email."'"; \t \t \t \t \t \t $ this-> data = $ this-> fetch_row_assoc ($ this-> sql); \t \t \t if (! (Vide $ this-> data)) \t \t \t \t retour $ this-> données; \t \t \t else { \t \t \t \t return false; \t \t \t} \t \t \t \t} »? –

+0

Oui au lieu de retourner $ this-> data return true Sinon la validation ne fonctionnera pas – JahShaka

+0

je l'ai changé à vrai maintenant je faux quand j'entrer une adresse e-mail si elle est nouveau ou existe dans la base de données mysql –