IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Validation de formulaire


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2006
    Messages : 71
    Points : 43
    Points
    43
    Par défaut Validation de formulaire
    Bonjours,

    j'ai fait un formulaire d'inscription sur mon site internet, mais lorsque je valide cela n'enregistre rien.

    voici le code que j'ai fait http://membres.lycos.fr/samira2vo
    juste pour mes tests

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
     <?php     
     
    //--------------------------------------------
    // FORMULAIRE D'INSCRIPTION 
    //
    // Envoi des données dans la table si les conditions sont remplies
    // -------------------------------------------
     
    // variable initialisée à zero pour tester les conditions
    $nb_faux = 0;
     
    if (isset($_POST['civilite']) && 
        isset($_POST['nom']) && 
    	isset($_POST['rue']) && 
    	isset($_POST['Pays']) && 
    	isset($_POST['cp']) && 
    	isset($_POST['ville']) && 
    	isset($_POST['telephone']) && 
    	isset($_POST['mobile']) && 
    	isset($_POST['email']) && 
    	isset($_POST['password']) && 
    	isset($_POST['confirm_password']))
    {
    	 $civilite = $_POST['civilite'];
    	 $nom = $_POST['nom'];
    	 $rue = $_POST['rue'];
    	 $Pays = $_POST['Pays'];
    	 $cp = $_POST['cp'];
    	 $ville = $_POST['ville']; 
    	 $telephone = $_POST['telephone'];
    	 $mobile = $_POST['mobile'];
    	 $email = $_POST['email'];
    	 $password = $_POST['password'];
    	 $confirm_password = $_POST['confirm_password'];
     
    	// incrémenter la variable $nb_faux si les champs du formulaire sont  vides 
        if (empty($_POST['civilite'])  ||
    	    empty($_POST['nom'])  ||
    		empty($_POST['rue'])  ||
    		empty($_POST['Pays'])  ||
    	    empty($_POST['cp'])  ||
    		empty($_POST['ville'])  ||
    		empty($_POST['telephone'])  ||
    		empty($_POST['mobile'])  || 
    	    empty($_POST['email']) || 
    		empty($_POST['password']) || 
    		empty($_POST['confirm_password']))
        {         
         ?>Champs non remplis<br/><?php 
         $nb_faux++;
        }     
      // Si l'utilisateur a bien entré un code */
        if (!empty($_REQUEST['userCode']))
        {
            /* Conversion en majuscules */
            $userCode = strtoupper($_REQUEST['userCode']);
     
            /* Cryptage et comparaison avec la valeur stockée dans $_SESSION['captcha'] */
           if( md5($userCode) == $_SESSION['captcha'] )
                echo '<h2 class="correct">Correct !</h2>'; // Le code est bon
    	        else echo '<h2 class="incorrect">Recommencez !</h2>'; // Le code est erroné
        }
        /* Si aucun code n'a été entré */
        else echo '<h2>Etes-vous un robot ?</h2>';
     
        // connexion à la base de donnée si il n'y a pas d'erreur (champs oubliés, expressions régulirères, vérification de mot de passe, vérification du pseudo)
        if ($nb_faux == 0) 
        {   
         include("connection.php"); 
     
    	 // affecter un nombre aléatoire dans la variable clef qui servira  a la validation du compte par mail
    	 $clef = "0123456789";
         $clef = rand();
     
         // requette envoi les données de l utilisateur dans la table
         $connexion = mysql_connect($hote, $utilisateur, $mdp) or die('<br/>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
         $choix_base = mysql_select_db($data_base, $connexion) or die('<br/>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>'); 
         $requete = "INSERT INTO $table_cp VALUES
    	            ('', '$civilite', '$nom', '$rue', '$Pays', '$cp', '$ville', '$telephone', '$mobile', '$email', '$password', '$clef')";
         $resultat = mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
         mysql_close($connexion); 
     
    	    // Envoyer le mail si la requête à fonctionnée
    	    if ($resultat == true)
    		{
    	     ?>Vous allez reçevoir un mail pour la validation de votre compte<br/><?php
     
    		 $mail_destinataire = $_POST['email'];             
             $sujet = "jeu, validation de l'inscription";
             $message = "Cet email a été envoyé à partir de http://www.jeu.com Ton mot de passe est: $password \n Ton pseudo est: $pseudo 
                		 Pour valider ton inscription clique sur le lien suivant. Nous te demandons ca  pour s'assurer que l'adresse mail que tu as entrée était correcte.
    					 Ceci pour prévenir du spam et des abus. 
    					 http://127.0.0.1/inscription.php?&amp;pseudo=$pseudo&amp;clef=$clef
    					 Le Webmaster";
             $head = "Salut $nom ";
             mail($mail_destinataire, $sujet, $message, $head);
            }
       } 
    }
     
     
    ?>

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour, vous seriez bien inspiré en effectuant ces contrôles au préalablement avant validation (submit) via du javascript. Cela evite une surcharge serveur t simplifie grandement le code en cas d'erreurs.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form name="ton_form" method="POST" action="traitement.php">
    Champs à tester : <input type="text" name="champs1" size=5>
    <input type="button" onClick="validationFormulaire();" value="valider formulaire">
    </form>

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    function validationFormulaire(){
     
    var formulaire = document.forms['ton_form'];
     
    if(formulaire.elements['champs1'].value == ''){
       alert('le champs doit etre rempli !');
       formulaire.elements['champs1'].focus();
       return false;
    }
     
    //Controle de tout les champs puis validation si on arrive a la fin de cette fonction sans avoir retourner false
     
    formulaire.submit();
     
    return true;
     
    }

    Et ainsi tout les champs sont validés avant d'etre envoyés au serveur

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Dans le code montré il y a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO $table_cp ...
    mais $table_cp n'est jamais initialisé

  4. #4
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2006
    Messages : 71
    Points : 43
    Points
    43
    Par défaut
    je n'ai pas trop envie d'avoir un alert en javascript

    et ma table INSERT INTO $table_cp ... a bien été initialisé grace a mon include("connection.php");

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Il faudrait déjà savoir si tu rentre dans la condition -> if ($nb_faux == 0)
    Pour ça, faire un var_dump() et autre echo sur certaines données permettra de contrôler ce qui se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $requete = "INSERT INTO $table_cp VALUES ... etc etc ...";
     
    var_dump($_POST);
    echo '<br />';
    echo $requete;
     
    exit(); // Un point d'arrêt provisoire
    Une fois tout ça affiché, et bien est ce que tout est cohérent ou pas ?

  6. #6
    Membre éclairé Avatar de nsanabi
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Points : 678
    Points
    678
    Par défaut
    je n'ai pas trop envie d'avoir un alert en javascript
    tu peut utiliser le dom de ton document et récupérer une zone où tu signalera les messages d'erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="erreurs"></div>
    puis valider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function validationFormulaire(){
     
    var zone= document. getElementById['erreurs'];
     var formulaire = document.forms['ton_form'];
     
    if(formulaire.elements['champs1'].value == ''){
       zone. innerHTML="le champs 1 doit etre rempli !";
       formulaire.elements['champs1'].focus();
       return false;
    }
    je suis du même avis, la validation tan qu'elle n'a pas besoin d'être coté serveur (comme pour ton usercode) utilise javascript

    sinon pour ton code est ce qu'il y a un message d'erreur?

    si le code postal est numérique dans ta base enlever les ''

Discussions similaires

  1. validation du formulaire de la page ouvrante d'un popup
    Par noa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/08/2005, 12h11
  2. Réponses: 5
    Dernier message: 24/05/2005, 11h21
  3. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14
  4. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo