Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2557 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Function, Vérification doublons dans un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Function, Vérification doublons dans un formulaire

n°1878945
kontas
Photographe amateur daltonien
Posté le 28-04-2009 à 17:47:28  profilanswer
 

Bonjour a tous ! J'ai un script qui va verifier coté serveur mes info provenant d'un formulaire. seulement j'ai voulu r'ajouter un systeme permetant la verification des doublons, mais cela n'a pas l'air de fonctionner:
 

Code :
  1. //verification des doublons
  2.    {
  3.        $email         = StripSlashes($_POST['email']);
  4.        $nomOrganisateur = Stripslashes($_POST['nomOrganisateur']);
  5.    }
  6.    else
  7.    {
  8.        $email            = $_POST['email'];
  9.        $nomOrganisateur  = $_POST['nomOrganisateur'];
  10.    }
  11.  
  12. include('./config.inc.php');
  13. $db = mysql_connect($sql_server,$sql_login,$sql_pwd);
  14. mysql_select_db($sql_db,$db);
  15.  
  16. $sqlv1 = sprintf("SELECT login FROM utilisateur WHERE login='%s'",mysql_real_escape_string($email));
  17. $reqv1 = mysql_query($sqlv1) or die('Verification de l\'existance de doublons email impossible<br/>'.mysql_error());
  18. $doublon1 = mysql_fetch_array($reqv1);
  19.  
  20.  
  21.  
  22.    function validateNomOrganisateur($nomOrganisateur){
  23.        //if it's NOT valid
  24.        //if(strlen($nomOrganisateur) < 3)
  25.     //    return false;
  26.     if($doublon1==true)
  27.         return false;
  28.        //if it's valid
  29.        else
  30.            return true;
  31.    }


 
 
La partie requetes et bonne j'en suis sur, par contre la maniere dont je l'ai ajouter am a fonction j'en suis moins sur ^^ Merci pour votre aide.
 
 
sources originelle:  http://yensdesign.com/2009/01/how- [...] hp-jquery/


Message édité par Elmoricq le 29-04-2009 à 00:37:38
mood
Publicité
Posté le 28-04-2009 à 17:47:28  profilanswer
 

n°1879078
FlorentG
Posté le 29-04-2009 à 09:56:32  profilanswer
 

Ta fonction validateNomOrganisateur n'est jamais appellée, là [:petrus dei]

n°1879244
guybrush02
Posté le 29-04-2009 à 13:24:07  profilanswer
 

Par ailleurs, une fonction qui prend un paramètre non-utilisé et qui travaille sur une variable globale... bof bof. Si tu veux éviter les doublons, tu mets le champ de ta table en UNIQUE ou en Primary Key (si nécessaire) et tu vérifies simplement si ta requête a été executée. Si t'as peur d'avoir d'autres erreurs potentielles, tu fais un simple SELECT login FROM utilisateur WHERE login=... LIMIT 1 et tu regardes si tu as un résultat (mysql_fetch_rows).

n°1879519
kontas
Photographe amateur daltonien
Posté le 29-04-2009 à 22:27:05  profilanswer
 

FlorentG a écrit :

Ta fonction validateNomOrganisateur n'est jamais appellée, là [:petrus dei]


Oui, elle est appeller dans le formulaire qui utilise ce script !
 

guybrush02 a écrit :

Par ailleurs, une fonction qui prend un paramètre non-utilisé et qui travaille sur une variable globale... bof bof. Si tu veux éviter les doublons, tu mets le champ de ta table en UNIQUE ou en Primary Key (si nécessaire) et tu vérifies simplement si ta requête a été executée. Si t'as peur d'avoir d'autres erreurs potentielles, tu fais un simple SELECT login FROM utilisateur WHERE login=... LIMIT 1 et tu regardes si tu as un résultat (mysql_fetch_rows).


 
C'est un systeme qui va vérifier la potentiel existance d'une entrée similaire deja existante dans la base. (un formulaire de création de compte, qui verifi si le nom d'utilisateur (une adresse €mail) n'est pas déjà existante !
 
Effectivement, un ami ma expliqué que je ne pouvais pas faire passer un variable, sans la déclarer dans la fonction, et que finalement, le plus simple serais de recreer une fonction specialement dédier a la verification de doublons. En y reflechissant, il serai peut etre interessant de faire une fonction, qui soit réutilisable pour d'autre formulaire.
 
Pour ce qui est des primary Key, et au paramêtre d'entrée dans les tables, je n'y suis pas du tous familiers, c'est notament pour ca que je passe a coté de beaucoup de chose ^^
 

n°1879521
FlorentG
Posté le 29-04-2009 à 22:30:39  profilanswer
 

kontas a écrit :

Oui, elle est appeller dans le formulaire qui utilise ce script !


On peut pas appeller une fonction PHP comme ça à partir d'un formulaire [:petrus75]

n°1879645
kontas
Photographe amateur daltonien
Posté le 30-04-2009 à 11:27:23  profilanswer
 

Ho ! on peut pas lancer une fonction en validant un formulaire ?
 
 

n°1879663
FlorentG
Posté le 30-04-2009 à 11:54:35  profilanswer
 

Hmm elle est appellée comment ? [:petrus dei] Poste du code

n°1879671
kontas
Photographe amateur daltonien
Posté le 30-04-2009 à 12:27:34  profilanswer
 

le formulaire organisateurInscription.php
 

Code :
  1. <?php
  2.     require_once("validation.php" );
  3. ?>
  4.     <link rel="stylesheet" href="css/general.css" type="text/css" media="screen" />
  5.     <div id="container">
  6.         <h1>Formulaire d'inscription</h1>
  7.        
  8.         <?if( isset($_POST['send']) && (!validateNomOrganisateur($_POST['nomOrganisateur']) || !validateEmail($_POST['email']) || !validatePasswords($_POST['pass1'], $_POST['pass2']) || !validateDescription($_POST['description']) ) ):?>
  9.                 <div id="error">
  10.                     <ul>
  11.                         <?if(!validateNomOrganisateur($_POST['nomOrganisateur'])):?>
  12.                             <li><strong>Invalid Name:</strong>Trois lettres minimum</li>
  13.                         <?endif?>
  14.                         <?if(!validateEmail($_POST['email'])):?>
  15.                             <li><strong>Invalid E-mail:</strong>Merci de saisir une adresse mail correct</li>
  16.                         <?endif?>
  17.                         <?if(!validatePasswords($_POST['pass1'], $_POST['pass2'])):?>
  18.                             <li><strong>Mot de passe invalide:</strong> Non saisi ou invalide!</li>
  19.                         <?endif?>
  20.                         <?if(!validateDescription($_POST['description'])):?>
  21.                             <li><strong>Description invalide:</strong>10 lettres minimum, 100 maximum</li>
  22.                         <?endif?>
  23.                     </ul>
  24.                 </div>
  25.             <?elseif(isset($_POST['send'])):
  26.                 include("organisateurInscriptionValid.php" );?>
  27.                 <div id="error" class="valid">
  28.                     <ul>
  29.                         <li><strong>Fêtes et loisir</strong> vous remerci de votre inscription</li>
  30.                         <li>Vous pouvez dès a present vous <a href="index.php?page=connexion"><strong>connectez</strong></a>et saisir vos évenements</li>
  31.                     </ul>
  32.                 </div>
  33.         <?endif?>
  34.         <form method="post" id="customForm" action="">
  35.             <div>
  36.                 <label for="nomOrganisateur">Votre Organisation</label>
  37.                 <input id="nomOrganisateur" name="nomOrganisateur" type="text" />
  38.                 <span id="nomOrganisateurInfo">Le nom de votre Organisation</span>
  39.             </div>
  40.             <div>
  41.                 <label for="email">Adresse E-mail</label>
  42.                 <input id="email" name="email" type="text" />
  43.                 <span id="emailInfo">Adresse E-mail valide, elle sera votre identifiant</span>
  44.             </div>
  45.             <div>
  46.                 <label for="pass1">Mot de passe</label>
  47.                 <input id="pass1" name="pass1" type="password" />
  48.                 <span id="pass1Info">Le mot de passe doit avoir au moins 5 caractères</span>
  49.             </div>
  50.             <div>
  51.                 <label for="pass2">Confirmation du mot de passe</label>
  52.                 <input id="pass2" name="pass2" type="password" />
  53.                 <span id="pass2Info">Confirmation du mot de passe</span>
  54.             </div>
  55.             <div>
  56.                 <label for="description">Description de votre organisation</label>
  57.                 <textarea id="description" name="description" cols="" rows=""></textarea>
  58.             </div>
  59.             <div>
  60.                 <input id="send" name="send" type="submit" value="send" />
  61.             </div>
  62.         </form>
  63.     </div>


 
le validation.php
 

Code :
  1. <?php
  2.     function validateNomOrganisateur($nomOrganisateur){
  3.         //if it's NOT valid
  4.         if(strlen($nomOrganisateur) < 3)
  5.  return false;
  6. if($doublon1==true)
  7.  return false;
  8.         //if it's valid
  9.         else
  10.             return true;
  11.     }
  12.     function validateEmail($email){
  13.         return ereg("^[a-zA-Z0-9]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$", $email);
  14.     }
  15.     function validatePasswords($pass1, $pass2) {
  16.         //if DOESN'T MATCH
  17.         if(strpos($pass1, ' ') !== false)
  18.             return false;
  19.         //if are valid
  20.         return $pass1 == $pass2 && strlen($pass1) > 5;
  21.     }
  22.     function validateDescription($description){
  23.         //if it's NOT valid
  24.         if(strlen($description) < 10)
  25.             return false;
  26.         //if it's valid
  27.         else
  28.             return true;
  29.     }
  30. ?>


 
et mon validation.js (qui est appeller a l'index du site)
 

Code :
  1. /***************************/
  2. //@Author: Adrian "yEnS" Mato Gondelle & Ivan Guardado Castro
  3. //@website: www.yensdesign.com
  4. //@email: yensamg@gmail.com
  5. //@license: Feel free to use it, but keep this credits please!                   
  6. /***************************/
  7. $(document).ready(function(){
  8. //global vars
  9. var form = $("#customForm" );
  10. var nomOrganisateur = $("#nomOrganisateur" );
  11. var nomOrganisateurInfo = $("#nomOrganisateurInfo" );
  12. var email = $("#email" );
  13. var emailInfo = $("#emailInfo" );
  14. var pass1 = $("#pass1" );
  15. var pass1Info = $("#pass1Info" );
  16. var pass2 = $("#pass2" );
  17. var pass2Info = $("#pass2Info" );
  18. var description = $("#description" );
  19. //On blur
  20. nomOrganisateur.blur(validateNomOrganisateur);
  21. email.blur(validateEmail);
  22. pass1.blur(validatePass1);
  23. pass2.blur(validatePass2);
  24. description.blur(validateDescription);
  25. //On key press
  26. nomOrganisateur.keyup(validateNomOrganisateur);
  27. pass1.keyup(validatePass1);
  28. pass2.keyup(validatePass2);
  29. description.keyup(validateDescription);
  30. //On Submitting
  31. form.submit(function(){
  32. if(validateNomOrganisateur() & validateEmail() & validatePass1() & validatePass2() & validateDescription())
  33.  return true
  34. else
  35.  return false;
  36. });
  37.    
  38. //validation functions
  39. function validateEmail(){
  40.          //testing regular expression
  41.          var a = $("#email" ).val();
  42.          var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
  43.          //if it's valid email
  44.          if(filter.test(a)){
  45.              email.removeClass("error" );
  46.               emailInfo.text("Adresse E-mail valide, elle sera votre identifiant" );
  47.               emailInfo.removeClass("error" );
  48.              return true;
  49.          }
  50.          //if it's NOT valid
  51.          else{
  52.               email.addClass("error" );
  53.               emailInfo.text("Merci de saisir une adresse mail correct" );
  54.               emailInfo.addClass("error" );
  55.              return false;
  56.          }
  57.      }
  58. function validateNomOrganisateur(){
  59.          //if it's NOT valid
  60.          if(nomOrganisateur.val().length < 4){
  61.               nomOrganisateur.addClass("error" );
  62.               nomOrganisateurInfo.text("Trois lettres minimum" );
  63.               nomOrganisateurInfo.addClass("error" );
  64.              return false;
  65.          }
  66.          //if it's valid
  67.          else{
  68.               nomOrganisateur.removeClass("error" );
  69.               nomOrganisateurInfo.text("Etes vous sur ?" );
  70.               nomOrganisateurInfo.removeClass("error" );
  71.              return true;
  72.          }
  73.      }
  74.      function validatePass1(){
  75.          var a = $("#password1" );
  76.          var b = $("#password2" );
  77.         //it's NOT valid
  78.         if(pass1.val().length <5){
  79.             pass1.addClass("error" );
  80.             pass1Info.text("ATTENTION, au moins 5 caractères" );
  81.             pass1Info.addClass("error" );
  82.             return false;
  83.         }
  84.         //it's valid
  85.         else{         
  86.             pass1.removeClass("error" );
  87.             pass1Info.text("Au moins 5 caractères: lettres, nombres and '_'" );
  88.             pass1Info.removeClass("error" );
  89.             validatePass2();
  90.             return true;
  91.         }
  92.     }
  93.     function validatePass2(){
  94.         var a = $("#password1" );
  95.         var b = $("#password2" );
  96.         //are NOT valid
  97.         if( pass1.val() != pass2.val() ){
  98.             pass2.addClass("error" );
  99.             pass2Info.text("Confirmation non saisi!" );
  100.             pass2Info.addClass("error" );
  101.             return false;
  102.         }
  103.         //are valid
  104.         else{
  105.             pass2.removeClass("error" );
  106.             pass2Info.text("Confirmez le mot de passe" );
  107.             pass2Info.removeClass("error" );
  108.             return true;
  109.         }
  110.     }
  111.     function validateDescription(){
  112.         //it's NOT valid
  113.         if(description.val().length < 10){
  114.             description.addClass("erreur" );
  115.             return false;
  116.         }
  117.         //it's valid
  118.         else{         
  119.             description.removeClass("erreur" );
  120.             return true;
  121.         }
  122.     }
  123.    
  124. });

n°1879672
kontas
Photographe amateur daltonien
Posté le 30-04-2009 à 12:29:36  profilanswer
 

etant donné la structure de la chose, j'ai voulu integrer mon systeme de doublon dans le validation.php, de cette maniere, si il y'avais un doublon, cela ne vidé pas les champs de mon formulaire !!
 
c'est pourquoi je les ai enlever de mon script qui fait les requettes d'insertion (non visible ici ^^)

n°1879684
kontas
Photographe amateur daltonien
Posté le 30-04-2009 à 13:14:04  profilanswer
 

1erement,  
 
Je tiens a m'excusé, car j'avais cru que ce formulaire été capable de garder les champs saisi en cas d'erreur, mais  ce n'est pas le cas (je parle bien de la parti sans Java) donc j'essayer de rajouter des possibilité a un système qui n'existé pas  :whistle:  
 
2emement,
 
J'ai fini par réussir a faire affiché une alerte avec les autres alerte en rajoutant une fonction. voici donc ce que j'ai fait:
 
Déclaration de ma fonction dans validation.php
 
 

Code :
  1. //verification des doublons
  2. if(get_magic_quotes_gpc())
  3. {       $email         = StripSlashes($_POST['email']);
  4.         $nomOrganisateur = Stripslashes($_POST['nomOrganisateur']);
  5.     }
  6. else
  7.     {
  8. $email            = $_POST['email'];
  9. $nomOrganisateur  = $_POST['nomOrganisateur'];
  10.     }
  11. $db = mysql_connect($sql_server,$sql_login,$sql_pwd);
  12. mysql_select_db($sql_db,$db);
  13. $sqlv1 = sprintf("SELECT login FROM utilisateur WHERE login='%s'",mysql_real_escape_string($email));
  14. $reqv1 = mysql_query($sqlv1) or die('Verification de l\'existance de doublons email impossible<br/>'.mysql_error());
  15. $doublon1 = mysql_fetch_array($reqv1);
  16. function validatedoublon1($doublon1){
  17. //if it's NOT valid
  18. if($doublon1==true)
  19.  return false;
  20. //if it's valid
  21. else
  22.  return true;
  23. }


 
puis, j'ai simplement rajouter ma fonction au milieu des autre au moment de la verification du formulaire

Code :
  1. organisateurInscription.php

:
 
 

Code :
  1. <?php
  2.     require_once("validation.php" );
  3. ?>
  4.     <link rel="stylesheet" href="css/general.css" type="text/css" media="screen" />
  5.     <div id="container">
  6.         <h1>Formulaire d'inscription</h1>
  7.        
  8.         <?if( isset($_POST['send']) && (!validateNomOrganisateur($_POST['nomOrganisateur']) || !validateEmail($_POST['email']) ||   !validatedoublon1($doublon1) || !validatePasswords($_POST['pass1'], $_POST['pass2']) || !validateDescription($_POST['description']) ) ):?>
  9.                 <div id="error">
  10.                     <ul>
  11.                         <?if(!validateNomOrganisateur($_POST['nomOrganisateur'])):?>
  12.                             <li><strong>Invalid Name:</strong>Trois lettres minimum</li>
  13.                         <?endif?>
  14.                         <?if(!validateEmail($_POST['email'])):?>
  15.                             <li><strong>Invalid E-mail:</strong>Merci de saisir une adresse mail correct</li>
  16.   <?endif?>
  17.   <?if(!validatedoublon1($doublon1)):?>
  18.                             <li><strong>Attention</strong>Cet Email est deja enregistré dans nos bases</li>
  19.                         <?endif?>
  20.                         <?if(!validatePasswords($_POST['pass1'], $_POST['pass2'])):?>
  21.                             <li><strong>Mot de passe invalide:</strong> Non saisi ou invalide!</li>
  22.                         <?endif?>
  23.                         <?if(!validateDescription($_POST['description'])):?>
  24.                             <li><strong>Description invalide:</strong>10 lettres minimum, 100 maximum</li>
  25.                         <?endif?>
  26.                     </ul>
  27.                 </div>
  28.             <?elseif(isset($_POST['send'])):
  29.                 include("organisateurInscriptionValid.php" );?>
  30.                 <div id="error" class="valid">
  31.                     <ul>
  32.                         <li><strong>Fêtes et loisir</strong> vous remerci de votre inscription</li>
  33.                         <li>Vous pouvez dès a present vous <a href="index.php?page=connexion"><strong>connectez</strong></a>et saisir vos évenements</li>
  34.                     </ul>
  35.                 </div>
  36.         <?endif?>


 
Voila, maintenant ca fonctionne bien, j'ai bien mon alerte au bon endroi, un peu decus que mon formulaire soit vidé, mais c'est deja pas mal ^^
 
En tous cas merci a vous ;)


Message édité par kontas le 30-04-2009 à 13:15:16

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Function, Vérification doublons dans un formulaire

 

Sujets relatifs
[PHP] Apostrophe formulairedéposer fichier via formulaire et recup
Erreur : Call to undefined function getByte()création de formulaire
Formulaire et PHP.[PHP] Intégration d'un champ 'joindre un fichier' dans un formulaire
Passer des variables d'un formulaire à l'autre ?[outlook 2003] Formulaire personalisés : créer un bouton "Répondre"
les formulaireAS3 : Utilisation de variable et function d'une classe à l'autre (Eten
Plus de sujets relatifs à : Function, Vérification doublons dans un formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR