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 :

Vérification formulaire PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Par défaut Vérification formulaire PHP
    Bonjour !

    @près de nombreuses recherches sur la vérification d’un formulaire et donc de nombreuses réponses évasives et d’essai sans succès, je me permet de vous demander de l’aide !

    J’ai donc une page contact avec un formulaire en php, le formulaire fonctionne parfaitement. J’aimerai y introduire une vérification des champs. Je voudrai qu’un message d’erreur s’affiche dans les même champs que la personne doit remplir ou alors que les champs en questions se coloris en rouge…Au mieux les deux, un message d’erreur sur la même page que mon formulaire pourrait aussi faire l'affaire…Je ne veux pas par contre de fenètre qui s’affiche au milieu de l’écran..

    Il y a tellement d’exemple et tellement d’infos, que je suis un peu perdu.


    Merci d’avance !

    Voici le code de ma page contact.html :

    Code html : 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
    <div id="contact"><form method="post" action="traitement.php">
        <p class="double">
            <label for="nom">Nom :</label>
            <input name="nom" type="text" id="nom"  />
        </p>
        <p class="double">
            <label for="prenom">Prénom :</label>
            <input name="prenom" type="text" id="prenom"  />
        </p>
        <p class="double">
            <label for="adresse">Adresse :        </label>
            <input name="adresse" type="text" id="adresse"  />
        </p>
        <p class="double">
            <label for="ville">Ville :        </label>
            <input type="text" name="ville" id="ville" />
        </p>
        <p class="double">
            <label for="telephone">Téléphone :</label>
            <input type="text" name="telephone" id="telephone" />
        </p>
     
        <p class="double">
            <label for="email">E.mail :</label>
            <input name="email" type="text" id="email" />
        </p>
     
        <p class="double">
            <label for="infos">Message :</label>
            <textarea id="infos" name="message" rows="5" cols="30"></textarea>
        </p>
        <p class="simple">
          <input type="submit" value="Envoyer ces informations" />
          <input name="R&eacute;initialiser" type="reset" value="Annuler" />
        </p>
    </form></div>


    Le code php de traitement.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
    <?php 
     
    $msg = "nom:\t$nom\n";
    $msg .= "prenom:\t$prenom\n";
    $msg .= "adresse:\t$adresse\n\n";
    $msg .= "ville:\t$ville\n\n";
    $msg .= "telephone:\t$telephone\n\n";
    $msg .= "email:\t$email\n\n";
    $msg .= "message:\t$message\n\n";
     
     
     
    $recipient = "contact@atc73.com";
    $subject = "Formulaire / albens travaux sur cordes";
     
    $mailheaders = "From: <a href="http://www.atc73.com" target="_blank">www.atc73.com</a> \n";
    $mailheaders .= "Reply-To: $sender_email\n\n";
     
    mail($recipient, $subject, $msg, $mailheaders);
     
     
    Header("Location: http://www.atc73.com/contact.html>");
     
    ?>

  2. #2
    Membre expérimenté
    Avatar de (Benoit)
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 184
    Par défaut
    Salut,
    Il faut d'abord savoir si tu veux faire un contrôle des saisies de ton formulaire côté CLIENT ou/et côté SERVEUR.
    Côté CLIENT : tu code des tests sur les champs en Javascript, lorsque l'utilisateur clique sur le bouton de soumission. Il n'y a pas de rechargement de la page
    Côté SERVEUR : tu codes en php des tests sur les valeurs reçues ($nom, $prenom...). Il y a rechargement de la page.

    La bonne pratique veut qu'il y ait toujours une validation côté serveur, et optionnellement (pour le confort utilisateur) une validation côté client

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Par défaut
    Citation Envoyé par (Benoit) Voir le message
    Salut,
    Il faut d'abord savoir si tu veux faire un contrôle des saisies de ton formulaire côté CLIENT ou/et côté SERVEUR.
    Côté CLIENT : tu code des tests sur les champs en Javascript, lorsque l'utilisateur clique sur le bouton de soumission. Il n'y a pas de rechargement de la page
    Côté SERVEUR : tu codes en php des tests sur les valeurs reçues ($nom, $prenom...). Il y a rechargement de la page.

    La bonne pratique veut qu'il y ait toujours une validation côté serveur, et optionnellement (pour le confort utilisateur) une validation côté client
    Merci pour ta réponse, les deux seraient nickels en fait. J'ai tellement lu de topic sur les formulaires que j'en ai plein la tête

    En gros ce que j'aimerai pouvoir faire :

    Si des champs ne sont pas remplis : message d'erreur à l'intérieur des champs en questions. Si tout est ok je redirige ma page vers une autre page ( page de remerciement ) pour cette page j'ai juste a modifié le header location en fait.

    Voilà en gros.

    l'url de ma page contact :

    www.atc73.com/contact.html

    Merci pour votre aide en tout cas.

  4. #4
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    Ce que tu peux faire c'est rappeler ta page tout le temps e faire une redirection PHP dans le cas où le formulaire est bien rempli.
    Pour savoir s'il est bien rempli tu peux tester chaque valeur avec la empty() et si pour chaque champ vide, tu rajouter un style CSS rouge au paragraphe (pour ça tu peux créer une classe CSS que tu appliques à la balise <p> quand une valeur est vide.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Par défaut
    Citation Envoyé par trotters213 Voir le message

    Ce que tu peux faire c'est rappeler ta page tout le temps e faire une redirection PHP dans le cas où le formulaire est bien rempli.
    Pour savoir s'il est bien rempli tu peux tester chaque valeur avec la empty() et si pour chaque champ vide, tu rajouter un style CSS rouge au paragraphe (pour ça tu peux créer une classe CSS que tu appliques à la balise <p> quand une valeur est vide.
    Salut

    Oui j'ai déjà vu ça sur certains topic, mais concrètement ( je suis un novice en php ) il faut coder de quelles manière?

    Si j'ai bien compris :

    J'ajoute une valeur empty sur chaque champ de ma page php puis je crée une classe css pour mes champs de ma page html. Je dois aussi créér un fichier externe css pour cette classe spécifique?

    Comment faire pour rapeller la page tout le temps?


    Sans exemple, cela me parait fastidieux

    Merci de votre bonne volonté !

  6. #6
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonsoir,
    Voici un exemple, j'ai essayé de le commenter au mieux :
    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
    <?php
    // Ici on teste si le formulaire a été envoyé : Envoyer correspondant au nom du bouton
    if (isset($_POST['Envoyer'])) { 
    // Ensuite si aucun champs n'est vide donc <>"" (différent de vide)
    if(($_POST['nom'] <> "") AND ($_POST['prenom'] <> "") AND ($_POST['adresse'] <> "") AND ($_POST['ville'] <> "") AND ($_POST['telephone'] <> "") AND ($_POST['email'] <> "") AND ($_POST['message'] <> "")) {
    //On créé une varaible qui nous permettra d'afficher le remerciement
    $formulaire = "OK";
    // On peut envoyer le mail
    $msg = "nom:\t$nom\n";
    $msg .= "prenom:\t$prenom\n";
    $msg .= "adresse:\t$adresse\n\n";
    $msg .= "ville:\t$ville\n\n";
    $msg .= "telephone:\t$telephone\n\n";
    $msg .= "email:\t$email\n\n";
    $msg .= "message:\t$message\n\n";
     
    $recipient = "contact@atc73.com";
    $subject = "Formulaire / albens travaux sur cordes";
     
    $mailheaders = "From: <a href='http://www.atc73.com' target='_blank'>www.atc73.com</a> \n";
    $mailheaders .= "Reply-To: $sender_email\n\n";
     
    mail($recipient, $subject, $msg, $mailheaders);
     
    } else { // Sinon, donc si un des champs est vide
    $formulaire = "KO";
    }
    } else { // Ici, si le formulaire n'a pas été envoyé
    $formulaire = "KO";
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    <style>
    .Input_erreur {
    background-color:#FF3333;
    }
    </style>
    </head>
     
    <body>
    <?php if($formulaire == "KO") { ?>
    <div id="contact">
    <form method="post" action="contact.php">
        <p class="double">
            <label for="nom">Nom :</label>
            <input name="nom" type="text" id="nom" <?php if ((isset($_POST['nom'])) && ($_POST['nom'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['nom'] ; ?>" />
        </p>
        <p class="double">
            <label for="prenom">Prénom :</label>
            <input name="prenom" type="text" id="prenom" <?php if ((isset($_POST['prenom'])) && ($_POST['prenom'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['prenom'] ; ?>"/>
        </p>
        <p class="double">
            <label for="adresse">Adresse :        </label>
            <input name="adresse" type="text" id="adresse" <?php if ((isset($_POST['adresse'])) && ($_POST['adresse'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['adresse'] ; ?>"/>
        </p>
        <p class="double">
            <label for="ville">Ville :        </label>
            <input type="text" name="ville" id="ville" <?php if ((isset($_POST['ville'])) && ($_POST['ville'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['ville'] ; ?>"/>
        </p>
        <p class="double">
            <label for="telephone">Téléphone :</label>
            <input type="text" name="telephone" id="telephone" <?php if ((isset($_POST['telephone'])) && ($_POST['telephone'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['telephone'] ; ?>"/>
        </p>
     
        <p class="double">
            <label for="email">E.mail :</label>
            <input name="email" type="text" id="email" <?php if ((isset($_POST['email'])) && ($_POST['email'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['email'] ; ?>"/>
        </p>
     
        <p class="double">
            <label for="infos">Message :</label>
            <textarea id="message" name="message" rows="5" cols="30" <?php if ((isset($_POST['message'])) && ($_POST['message'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';"><?php echo $_POST['message'] ; ?></textarea>
        </p>
        <p class="simple">
          <input type="submit" value="Envoyer ces informations" name="Envoyer" />
          <input name="R&eacute;initialiser" type="reset" value="Annuler" onclick="change_class();" />
        </p>
    </form>
    </div>
    <?php } ?>
    <?php if($formulaire == "OK") { ?>
    <div id="contact">Votre mail a bien été envoyé, merci.</div>
    <?php } ?>
    </body>
    </html>
    Il faut que tu renommes ta page contact.html en contact.php.

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

Discussions similaires

  1. vérification d'un formulaire PHP
    Par chris22 dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2011, 03h53
  2. [MySQL] Formulaire PHP ->MySQL
    Par shub dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 09/02/2010, 22h42
  3. Vérification formulaire PHP
    Par SeThYy dans le forum Langage
    Réponses: 15
    Dernier message: 14/11/2008, 23h49
  4. Formulaire PHP+ envoi de fichier joint
    Par GraphicProvider dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 18h12
  5. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 11h19

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