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 :

Formulaire // Gestion d'erreurs


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Formulaire // Gestion d'erreurs
    Bonjour à tous.

    Débutant en php complet, j'aimerais pouvoir avoir de l'aide à propos d'un formulaire.

    En effet, j'aimerais que ce formulaire, qui soit renvoyé sur un .php, puisse, lors du submit, afficher les champs incorrects directement sur le formulaire.


    (En gros s'auto-rediriger sur la même page avec des indications sur les champs erronés.)

    On m'a parlé de la superglobale $_SESSION. Est-ce vraiment nécessaire premièrement pour ce que je voudrais obtenir?

    Cordialement,

  2. #2
    Membre habitué Avatar de Savak
    Homme Profil pro
    Ingénieur Etude et Développement
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur Etude et Développement

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 192
    Points
    192
    Par défaut
    Tu auras toutes les réponses à tes questions ici : FAQ PHP

    Etant donné ce que tu veux faire, je te conseille de lire consciencieusement cette FAQ puis de revenir vers nous avec une première ébauche de code si jamais tu ne parviens pas à tes fins.

    Bon courage!

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Re-Bonjour,

    Ne trouvant pas forcément mes réponses aux questions dans la FAQ, je me permets un petit bout de code.

    Contact.html

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form id="contactform" action="contact.php" method="post" name="send-contact">
    <input type="text" name="firstname" placeholder="* Prénom" data-rule="firstname" data-msg="Merci d'entrer un e-mail valide" />
    <input type="text" name="familyname" placeholder="* Nom" data-rule="maxlen:4"/>
    <input class="btn-theme margintop10 pull-left submit-style" type="submit" value="Soumettre" name="validation">

    Je vous épargne le Bootstrap ainsi que de nombreux champs.

    Contact.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $post = (!empty($_POST)) ? true : false;
    if($post){
    	$firstname = stripslashes($_POST['firstname']);
    	$familyname = stripslashes($_POST['familyname']);
             /* vérification des champs */
    ??????????
    }
    ?>
    Mon problème est donc aux points d'interrogation. Comment, en fonction de mes vérifications, je peux renvoyer sur mon formulaire et afficher, surligné, souligné, les champs où l'utilisateur est en faute?

    (Code HTML fait à la volée, désolé, il peut s'y cacher des aberrations.)

    Cordialement,

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Déjà oublie les stripslashes(), c'est une pratique préhistorique.

    Ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $post = (!empty($_POST)) ? true : false;
    if($post)
    se remplace par un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['validation'])) {
    Pour venir, tu peux faire pointer ton formulaire vers lui même :
    Ca t'evite de balader des variables et des retours d'erreur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci bien pour ces petits conseils.

    Cela dit, je ne vois pas en quoi faire pointer le formulaire vers lui-même, me permet de le vérifier avant tout?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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
     
    <?php
    if (isset($_POST['validation'])) {
        if (empty($_POST['nom'])) {
            echo '<p>Le nom doit être renseigné</p>';
        }
        else {
            echo 'tout est bon, je peux faire un traitement';
       }
    }
    ?>
    <form action="" method="post">
    <p>Nom : <input type="nom" /></p>
    <input type="submit" name="validation" />
    </form>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Merci infiniment de prendre le temps de me répondre.

    Afin de bien comprendre, je me permets quelques questions...

    J'ai eu pour habitude de toujours, au maximum, séparer dans deux fichiers l'html du php. Or là si je comprends bien, je dois tout faire en un seul et unique fichier? (un .php donc)

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire des inclusions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php include 'traitement_formulaire.php'; ?>
     
    <form action="" method="post">
    <p>Nom : <input type="nom" /></p>
    <input type="submit" name="validation" />
    </form>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    Apres si tu veux par exemple qu'avant d'envoyer le formulaire un champs bloque l'envoie du formulaire car il est vide c'est possible de le faire simplement avec le framework Bootstrap.
    N'oublie pas le pouce vert

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Sauf erreur de ma part, ce que fait Bootstrap, c'est rendre visible le résultat de la validation, comme . C'est bien, mais il n'y a pas un code qui fait la validation quelque part, c'est beaucoup moins utile Et ça implique d'avoir utilisé Bootstrap pour la mise en page de l'ensemble de l'application.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Celira Voir le message
    Sauf erreur de ma part, ce que fait Bootstrap, c'est rendre visible le résultat de la validation, comme . C'est bien, mais il n'y a pas un code qui fait la validation quelque part, c'est beaucoup moins utile Et ça implique d'avoir utilisé Bootstrap pour la mise en page de l'ensemble de l'application.
    pas forcement il y a juste a rajouter require dans la balise pour bloquer l'envoi du formulaire si le champs est vide apres le input type email vérifie si c'est bien un email et il y en a d'autre comme ca
    N'oublie pas le pouce vert

  12. #12
    Membre habitué Avatar de Savak
    Homme Profil pro
    Ingénieur Etude et Développement
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur Etude et Développement

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 192
    Points
    192
    Par défaut
    pas forcement il y a juste a rajouter require dans la balise pour bloquer l'envoi du formulaire si le champs est vide apres le input type email vérifie si c'est bien un email et il y en a d'autre comme ca
    Ça implique quand même d'avoir à intégrer Bootstrap. C'est quand même dommage de faire appel à un framework pour utiliser une propriété d'une balise...

  13. #13
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ah! je viens de comprendre : tu parles de l'API HTML5 de contrainte de validation.

    Alors, oui, effectivement, ça va faire des contrôles, mais seulement si c'est supporté par le navigateur. Donc, ça dépend des navigateurs cibles de son appli et des contrôles souhaités.
    Par exemple, IE9 ne supporte pas grand chose (et oui, il y a encore des gens qui s'en servent et des gens qui demandent la compatibilité...) ou le champ input de type date qui n'est implémenté que sur Chrome et Opera (il me semble)

    Mais, ça ça n'a aucun rapport avec Bootstrap
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [MySQL] Gestion d'erreur sur un formulaire
    Par kate59 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/01/2009, 08h34
  2. gestion des erreurs (validation de formulaires)
    Par mattyeux dans le forum Ruby on Rails
    Réponses: 6
    Dernier message: 26/11/2007, 07h53
  3. formulaire et gestion d'erreurs
    Par lhpp dans le forum Langage
    Réponses: 8
    Dernier message: 17/09/2006, 13h41
  4. Réponses: 6
    Dernier message: 29/05/2006, 11h21
  5. [Formulaire] Gestion erreur saisie d'une requête
    Par b_steph_2 dans le forum IHM
    Réponses: 6
    Dernier message: 05/01/2006, 16h40

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