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 :

[Question] Vérification formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Badaboumpanpan
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Par défaut [Question] Vérification formulaire
    Bonjour,

    J'ai trouvé dans le dernier numéro de Lunix Pratique un formulaire qui s'auto-vérife en 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
    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
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Vérification de Formulaire PHP</title>
     
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
     
        <style type="text/css">
            h1, h2, h3 { margin: 2px; }
            h3 { background-color: #ccc; }
     
            #errors { border: 2px dashed red; margin: 15px 0; }
            #errors p { margin: 2px; }
        </style>
    </head>
    <body>
    <h1>Traitement d'un formulaire en PHP</h1>
     
    <?php
    // Déclaration des fonctions de vérification
    // Vérification simple de la validité d'un email
    // on considère qu'un email est une chaine composée de str1@str2.str3
    // les sous-chaines str1, str2 et str3 ne peuvent être vides
    function is_email($email)
    {
        // séparation des chaines de part et d'autre du @
        // $str est un tableau
        $str = explode("@", $email);
        // la taille du tableau doit être nécessairement 2 (1 seul arobas)
        // str1 => $str[0]
        // str2.str3 => $str[1]
        if (sizeof($str) != 2) {
            return FALSE;
        } else {
            // séparation des chaines du domaine, de part et d'autre du .
            $dom = explode(".", $str[1]);
            if (sizeof($dom) != 2) {
                return FALSE;
            } else {
                return TRUE;
            }
        }
    }
     
     
    // Si 'envoi' n'est pas vide c'est que le formulaire a été validé
    if (!empty($_POST["envoi"])) {
        // Vérification du champ 'nom'
        // Vérification si le champ est vide
        if (empty($_POST["nom"])) {
            $tab_errors["nom"] = "Le champ 'Nom' est requis !";
        } else {
            // Vérification si la longueur du champ 'nom' est comprise entre 5 et 50 caractères
            if (strlen($_POST["nom"]) < 5 or strlen($_POST["nom"]) > 50) {
                $tab_errors["nom"] = "Le taille du champ 'nom' doit être comprise entre 5 et 50 caractères !";
            }
        }
     
        // Vérification du champ 'prenom'
        // Vérification si le champ est vide
        if (empty($_POST["prenom"])) {
            $tab_errors["prenom"] = "Le champ 'Prénom' est requis !";
        } else {
            // Vérification si la longueur du champ 'prenom' est comprise entre 5 et 50 caractères
            if (strlen($_POST["prenom"]) < 5 or strlen($_POST["prenom"]) > 50) {
                $tab_errors["prenom"] = "Le taille du champ 'Prénom' doit être comprise entre 5 et 50 caractères !";
            }
        }
     
        // Vérification du champ 'adresse'
        // Vérification si la longueur du champ 'adresse' est comprise entre 50 et 255 caractères
        if (strlen($_POST["adresse"]) > 255) {
            $tab_errors["adresse"] = "Le taille du champ 'Adresse' ne peut excéder 255 caractères !";
        }
     
        // Vérification du champ 'codepostal'
        if (!empty($_POST["codepostal"]) and !is_numeric($_POST["codepostal"])) {
            $tab_errors["codepostal"] = "Le champ 'Code Postal' doit être numérique !";
        }
     
        // Vérification du champ 'ville'
        // Vérification si la longueur du champ 'ville' est inférieure à 50 caractères
        if (strlen($_POST["ville"]) > 50) {
            $tab_errors["ville"] = "Le taille du champ 'Ville' ne peut excéder 50 caractères !";
        }
     
        // Vérification du champ 'e-mail'
        // vérification si le champ est vide
        if (empty($_POST["email"])) {
            $tab_errors["email"] = "Le champ E-Mail est requis !";
        } else {
            if (!is_email($_POST["email"])) {
                $tab_errors["email"] = "Le champ 'E-Mail' n'est pas valide !";
            }
        }
    }
     
    // Si le tableau $tab_errors n'est pas vide, c'est que le formulaire a déjà été envoyé et qu'il contient des erreurs.
    if (!empty($tab_errors)) {
        // Affichage des erreurs du formulaires
        echo "<div id=\"errors\">";
        echo "<h3>Le formulaire contient des erreurs :</h3>";
        // parcours du tableau des erreurs et affichage des libellés
        foreach ($tab_errors as $field => $field_error) {
            echo "<p><strong>" . $field . ":</strong> " . $field_error . "</p>";
        }
        echo "</div>";
    } else {
        // Si le tableau $tab_errors est vide, et que $_POST["envoi"] n'est pas vide, c'est que le formulaire et ses données sont valides.
        // on procède alors au traitement
        if (!empty($_POST["envoi"])) {
            echo "<h3>Traitement du Formulaire...</h3>";
            # instructions du traitement....
            # insertion dans une bdd, envoi d'un mail, inscription, ...
            // $form_res est une variable permettant de dire que le formulaire est valide et que le traitement de celui-ci s'est déroulé sans problème.
            $form_res = TRUE;
        }
    }
     
    // Si $form_res n'est pas VRAI on affiche le formulaire
    if (!$form_res) {
    ?>
     
    <!-- à noter l'initialisation des valeurs des champs du formulaire avec les résultats déjà saisis en cas de problème de validation du formulaire -->
    <h2>Veuillez renseigner vos coordonnées :</h2>
    <form action="verif_form.php" method="post">
    <p><label for="nom">Nom :</label> <input type="text" id="nom" name="nom" value="<?php echo $_POST["nom"]; ?>" /></p>
    <p><label for="prenom">Prénom :</label> <input type="text" id="prenom" name="prenom" value="<?php echo $_POST["prenom"]; ?>" /></p>
    <p><label for="adresse">Adresse :</label> <input type="text" id="adresse" name="adresse" value="<?php echo $_POST["adresse"]; ?>" /></p>
    <p><label for="codepostal">Code Postal :</label> <input type="text" id="codepostal" name="codepostal" value="<?php echo $_POST["codepostal"]; ?>" /></p>
    <p><label for="ville">Ville :</label> <input type="text" id="ville" name="ville" value="<?php echo $_POST["ville"]; ?>" /></p>
    <p><label for="email">E-Mail :</label> <input type="text" id="email" name="email" value="<?php echo $_POST["email"]; ?>" /></p>
    <p>
        <input type="hidden" name="envoi" value="1" />
        <input type="submit" name="BtnSubmit" value="Valider" /><input type="reset" name="BtnClear" value="Annuler" />
    </p>
    </form>
     
    <?php
    }
    ?>
     
    </body>
    </html>
    Je voudrais qu'une fois vérifié et validé, il soit envoyé à une url. Comment puis-je faire ? (j'ai bien trouvé mail() pour l'envoyer par mail...)

    D'avance merci !

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Par défaut
    Alors il ne te reste plus qu'à faire le corps de ton email

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Il ne te reste plus en effet qu'à envoyer tout cela à l'aide de la fonction mail(), dans la portion "traitement du formulaire".
    N'oulie pas les cours PHP de Developpez si tu as des problèmes

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

Discussions similaires

  1. Vérification formulaire prérempli
    Par carelha dans le forum Langage
    Réponses: 3
    Dernier message: 04/01/2007, 10h32
  2. [MySQL] petite question sur formulaire
    Par michka999 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/08/2006, 18h44
  3. plusieurs questions sur formulaire de contact
    Par pp51 dans le forum Langage
    Réponses: 7
    Dernier message: 13/06/2006, 13h24
  4. problème de vérification formulaire (non bloquante)
    Par Florent08800 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/05/2006, 12h02
  5. problème de vérification formulaire
    Par Le Rebel dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/03/2006, 13h10

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