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 :

contrôle champs de formulaire vide avant traitement


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Points : 93
    Points
    93
    Par défaut contrôle champs de formulaire vide avant traitement
    Bonjour,
    j'ai un formulaire et à la validation de celui-ci une base de données est créé (tout marche bien).
    J'ai ajouté un peu de code pour alerter si les champs du formulaires ne sont pas remplis et j'ai un petit souci.
    Ma logique (peut-être pas la bonne..) :
    A la validation du formulaire Si les variable sont vides j'alerte (le code marche), Sinon j'ajoute à l'attribut action ="traitement.php" (le traitement ne s'effectue pas et il reste sur la page formulaire)
    Avant de vous ecrire j'ai :
    effectué un var_dump($action) et je ne vois pas de problème;
    contrôlé si à la validation du formulaire avec les champs remplis il y a bien action="traiement.php" et c'est OK;
    Voici mon code :
    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
    $erreur =null;
    $action = null;
    if(isset($_POST['valider'])) {
        if(empty($_POST['hote']) && empty($_POST['login']) && empty($_POST['mdp'])) {
            $erreur="remplissez vos champs";
        } else if(!empty($_POST['hote']) && !empty($_POST['login']) && !empty($_POST['mdp'])){
            $action = "traitement.php";
        }
    }
    echo var_dump($action);
    ?>
     <body>
            <div class="container">
                <div class="row  vh-100 align-items-center justify-content-center">
                <div class="col-4 bg-light p-3">
                        <h3 class="text-center">Création base de donnée</h3>
                        <?php if($erreur) : ?>
                            <div class = "alert alert-danger">
                                <?=$erreur ?>
                            </div>
                        <?php endif?>
                        <form action="<?=$action != null ? $action :'' ?>" method="post">
                            <div class="form-group mb-2">
                                <label for="hote">Hôte :</label>
                                <input type="text" class="form-control" name="hote">
                            </div>
                            <div class="form-group mb-2">
                                <label for="login">login :</label>
                                <input type="text" class="form-control" name="login">
                            </div>   
                            <div class="form-group">
                                <label for="mdp">Mot de passe :</label>
                                <input type="password" class="form-control" name="mdp">
                            </div>
                            <input type="submit" name="valider" class="btn btn-primary mt-3" value="envoyer">
                        </form>
                    </div>
                </div>
        </body>
    Merci pour votre aide et vos éclaircissements

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 453
    Points : 4 978
    Points
    4 978
    Par défaut
    Bonjour,

    Voici ce qui se passe avec votre code actuel :
    • Au premier chargement de la page, les variables POST n'existent plus, et donc l'attribut action du form est vide.
    • Lorsque vous validez le formulaire (avec action=""), PHP récupère les valeurs POST pour la première fois.
    • Si les valeurs ne sont pas vides, PHP regénère le formulaire avec action="traitement.php".
    • Si par contre les 3 variables POST sont vides, PHP cette fois regénère le formulaire avec une action vide.


    Pourquoi ne pas simplement ajouter des attributs required aux input ?

    <input type="text" class="form-control" name="hote" required />

  3. #3
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Bonjour,
    je vous remercie pour votre réponse mais alors le code il faudrait le faire différemment ? je ne vois vraiment pas
    Au premier chargement de la page j'ai laissé action vide pour éviter que si il y a des champs pas saisies en validant le formulaire il se redirige vers traitement PHP..
    merci pour votre patience

  4. #4
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    donc si j'ajoute required je n'ai plus besoin de tout ca ? je me suis compliqué la vie...
    merci j'ai compris vos explications

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 453
    Points : 4 978
    Points
    4 978
    Par défaut
    à mon avis oui, vous compliquez la tâche alors que la solution est plus simple.

    garder l'action="traitement.php" dans tout les cas, et rajouter des required aux input, comme ça l'utilisateur ne peut valider le formulaire que seulement si les valeurs sont ok.

  6. #6
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    merci beaucoup.
    Bonne journée

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

Discussions similaires

  1. [Formulaire] affichage avant traitement php
    Par sebastien4444 dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2019, 15h43
  2. [PHP 5.6] Champs de formulaire vide non définis depuis MAJ serveur
    Par Sodium dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2015, 09h59
  3. champ de formulaire vide si valeur = 0
    Par strouve dans le forum IHM
    Réponses: 3
    Dernier message: 04/10/2011, 20h27
  4. [CKEditor] Tester si le champ est vide avant envoi du formulaire
    Par Xrris dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 17/04/2009, 12h59
  5. [debutant] test sur champ de formulaire vide
    Par eyango dans le forum Access
    Réponses: 1
    Dernier message: 25/08/2006, 19h17

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