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 :

Création et vérification de formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Création et vérification de formulaire
    Bonjour,

    Je suis en train de créer un formulaire de contact pour mon portfolio web.
    Malheureusement je n'arrive pas à faire figurer les messages d'erreurs ou de validation sous les champs même de mon formulaire.
    A chaque validation de mon formulaire celà me renvoie à une autre page affichant le message de validation du formulaire ou d'erreur.

    Comment puis-je donc enrichir ce code ?

    Sur ma page contact.html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <div class="contact_form">
            <form action="contact.php" method="post">
                <input type="text" id="name" placeholder="Nom et prénom" name="nom"/>
                <input type="email" id="email" placeholder="Email" name="email" />
                <textarea id="message" name="message"></textarea>
                <input type="submit" value="Envoyer" />
            </form>
    </div>
    Ma page contact.php :

    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
     
     
    <?php
    $erreur = NULL;
    $info = NULL;
    if(!empty($_POST['nom']) AND !empty($_POST['email']) AND !empty($_POST['message'])){
        extract($_POST);
        if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email)){
        $nom = htmlspecialchars(addslashes($nom));
        $email = htmlspecialchars(addslashes($email));
        $message = htmlspecialchars(addslashes($message));
        $destinataire = "monnom@gmail.com";
        $sujet = "Formulaire de contact";
        $entete = 'From : '.$email.'';
        $message = 'Pseudo : '.$nom.' '."\n". 'Message : '.$message.'';
        mail($destinataire, $sujet, $message, $entete);
        $info = "Votre email à été envoyé";
        unset($_POST, $message, $nom, $email);
        }
        else{
        $erreur="Adresse email invalide";
        }
    }
    else{
        $erreur = "Veuillez remplir tous les champs obligatoires *";
    }
    ?>
    Si vous avez des idées, se serait sympas.
    Pour info je débute en PHP

    Un gros merci par avance !

  2. #2
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par nefer1987 Voir le message
    Bonjour,
    A chaque validation de mon formulaire celà me renvoie à une autre page affichant le message de validation du formulaire ou d'erreur.
    Bonjour

    Tu réussies quand même à faire afficher tes messages d'erreurs? Car je ne vois rien qui permet cela (ex echo )

    Pour ce qui est d'afficher tes erreurs dans la page de formulaire, il fait que tu fasses un header (doc) qui permet de revenir sur ta page de formulaire.

    enfin moi, c'est ce que je ferais

  3. #3
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    une manière simple est d'utiliser une seule page et un tableau/objet d'erreurs, voilà le principe (simplifié car normalement le mieux et de décentraliser les messages d'erreurs du code en lui-même) :

    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
    <?php
    $erreurs = array();
    if(isset($_POST['send']) {
            if(!isset($_POST['nom'] || empty($_POST['nom'])) {
                    $erreurs['nom'] = 'Manque le nom';
            }
            if(!isset($_POST['email'] || empty($_POST['email'])) {
                    $erreurs['email'] = 'Manque le mail';
            }
            // les autres tests
            ...
    }
     
    // Problème ou 1er affichage du formulaire
    if(!isset($_POST['send']) || !empty($erreurs)) {
    // Affichage du formulaire
    ?><div class="contact_form">
            <form action="contact.php" method="post">
                <input type="text" id="name" placeholder="Nom et prénom" name="nom"/>
                <?php echo isset($erreur['nom']) ? $erreur['nom'] : '' ;>
                <input type="email" id="email" placeholder="Email" name="email" />
                <?php echo isset($erreur['email']) ? $erreur['email'] : '' ;>
                <textarea id="message" name="message"></textarea>
                <input type="submit" name="send" value="Envoyer" />
            </form>
    </div><?php
    }
    // Sinon tout est ok, envoi du mail
    else{
        // mail() etc.
    }
    [edit] comme je vois que tu es en html5 n'oublie que tu peux ajouter 'required' à tes champs, ce qui permet de bloquer le formulaire (mais attention, qui n'a rien à voir avec la sécurité)

  4. #4
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut
    Bonjour,
    HTML5 offre déja un champs email , s'il n'est pas valide il génére un erreur!
    pourquoi refaire le teste en php?

    Bon courage

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par owenho
    pourquoi refaire le teste en php?
    Euh... tout simplement parce qu'aucune donnée ne doit être utilisée côté serveur sans avoir été vérifiée, y compris les variables de session ou les sources de données.
    C'est le B.A.BA de la sécurité côté serveur : ne jamais faire confiance aux données reçues !

    Citation Envoyé par owenho
    HTML5 offre déja un champs email
    Ca n'a rien à voir. Ces vérifications sont utiles uniquement pour les utilisateurs de bonne foi mais peuvent être contournées de façon très simple dès lors que l'utilisateur a de moins bonnes intentions, ne serait-ce que par l'ajout de l'attribut HTML5 novalidate...

Discussions similaires

  1. Vérification de formulaire avec regexp
    Par Shadow aok dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/08/2007, 12h57
  2. Réponses: 9
    Dernier message: 17/11/2005, 15h58
  3. Réponses: 5
    Dernier message: 12/07/2005, 18h04
  4. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 14h48

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