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

PHP & Base de données Discussion :

vérification de valeur dans champ de formulaire


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 50
    Points : 35
    Points
    35
    Par défaut vérification de valeur dans champ de formulaire
    Bonjour à tous,
    je reviens encore vers vous pour un problème que je n'arrive pas à solutionner.
    Surement une erreur toute bête mais bon...
    Dans un fichier php traitant l'envoi d'un mail après saisie dans un formulaire,
    je veux vérifier la valeur de 5 champs, puis j'envoie un mail avec les infos si tout est ok. Sinon, retour au formulaire. Le problème, c'est que si je remplis au moins 4 champs, ça envoi quand même le mail.
    surement un problème de fin de boucle mais où ???


    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
     
    function precedent() 
    { 
    document.write('<form><input type="button" value="Retour" onclick="history.back();"></form>'); 
    } 
    --> 
    </script> 
     
    <?php
     
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement 
    remplis :<br/><br/>";
     
    // vérification des champs
     
    if (empty($_POST['Auteur'])) {
    $message .= "Veuillez remplir le champ Auteur<br/>";
    }
    if (empty($_POST['choix'])) {
    $message .= "Veuillez indiquer la nature de l'opération<br/>";
    }
    if (empty($_POST['Nature'])) {
    $message .= "Veuillez indiquer le type du matériel<br/>";
    }
    if (empty($_POST['Serie'])) {
    $message .= "Veuillez indiquer le numéro de série<br/>";
    }
    if (empty($_POST['Copernic'])) {
    $message .= "Veuillez indiquer le champ test<br/>";
    }
     
    // si un champ est vide, on affiche le message d'erreur et on stoppe le script
    if (strlen($message) > strlen($msg_erreur)) {
    	echo $message;
    	echo '<br><br>';
    	echo '<script language="JavaScript">precedent()</script>'; 
    	die();
    }
     
    .....
    ?>
    merci pour le coup de main

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    Bonjour,

    tu peux le faire éventuellement avec un tableau :

    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
    $tabError = array();
     
    if (empty($_POST['Auteur'])) {
    $tabError['Auteur'] = "Veuillez remplir le champ Auteur<br/>";
    }
    if (empty($_POST['choix'])) {
    $tabError['choix'] = "Veuillez indiquer la nature de l'opération<br/>";
    }
    if (empty($_POST['Nature'])) {
    $tabError['Nature'] = "Veuillez indiquer le type du matériel<br/>";
    }
    if (empty($_POST['Serie'])) {
    $tabError['Serie'] .= "Veuillez indiquer le numéro de série<br/>";
    }
    if (empty($_POST['Copernic'])) {
    $tabError['Copernic'] = "Veuillez indiquer le champ test<br/>";
    }
     
    if ( empty($tabError) ) {
    // envoi mail
    }
    else {
    // Affichage erreur
     
    foreach($tabError as $val) {
     
    echo $val, '<br />';
     
    }
     
    }
    Le savoir est utile que s'il est partagé par tous.
    /(bb|[^b]{2})/
    !sleep() ? array((string))

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Merci de t'intéresser à mon pb.
    le code marche impec' en ce qui concerne la validation des 5 champs obligatoires.
    seulement, il me retourne pas le nom des champs à remplir dès qu'on en a oublié un.
    $val ?

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    Oui,

    $val dans le foreach te renverra les messages.

    normalement la boucle foreach te renverra les messages contenus dans le tableau

    fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Affichage erreur
     
    echo '<pre>';
    print_r($tabError);
    echo '</pre>';
     
    foreach($tabError as $val) {
    tu verras les messages à afficher
    Le savoir est utile que s'il est partagé par tous.
    /(bb|[^b]{2})/
    !sleep() ? array((string))

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    ça marche nickel
    Merci beaucoup syl2095
    bonne journée à toi

    +1 bien entendu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi valeur requete dans champ sur formulaire
    Par amelyfred dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 17/12/2013, 08h15
  2. Réponses: 3
    Dernier message: 21/05/2007, 15h31
  3. Réponses: 1
    Dernier message: 25/03/2007, 22h03
  4. Valeur dans champ formulaire
    Par dbi dans le forum Access
    Réponses: 5
    Dernier message: 18/02/2006, 01h18

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