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

  1. #1
    Candidat au Club
    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
    Points : 2
    Points
    2
    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 actif
    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
    Points : 289
    Points
    289
    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
    "J'adorerais changer le monde, mais pas moyen de mettre la main sur le code source."
    chez moi

  3. #3
    Candidat au Club
    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
    Points : 2
    Points
    2
    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 : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    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
    Candidat au Club
    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
    Points : 2
    Points
    2
    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 expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    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.

  7. #7
    Candidat au Club
    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
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Jumano Voir le message
    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.
    Salut !

    Super cela fonctionne !Tu m'enlèves une sacrée épine du pied...Je suis en train de modifier certaines choses car du coup rien n'est valide w3c !

    Autres choses, je peux suite à la validation rediriger ma page vers une autre page de remerciements? Peut-on également créér un div d'erreur suite au coloriage des champs en rouge?

    En tout cas merci de ta réponse, il faut que je comprenne tout ça !


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

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Pour ce qui est de la redirection tu n'es pas obligé regarde à la fin du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php if($formulaire == "OK") { ?>
    <div id="contact">Votre mail a bien été envoyé, merci.</div>
    <?php } ?>
    Ta page est réaffichée et s'il n'y a pas d'erreur c'est cette div qui est affichée.

  9. #9
    Candidat au Club
    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
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Bonjour,
    Pour ce qui est de la redirection tu n'es pas obligé regarde à la fin du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php if($formulaire == "OK") { ?>
    <div id="contact">Votre mail a bien été envoyé, merci.</div>
    <?php } ?>
    Ta page est réaffichée et s'il n'y a pas d'erreur c'est cette div qui est affichée.

    Yes, j'avais vu ça ! En fait je trouve que pour un confort visuel il vaut mieux enlever le formulaire, c'est pour ça que je préfère créér une page "remerciements" sans formulaire. Enfin si c'est possible bien entendue !


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

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    C'est ce qui va se passer si le formulaire est correctement rempli, lorsque la page se réaffiche, on envoie le mail et on affiche que le remerciement ...

  11. #11
    Candidat au Club
    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
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Jumano Voir le message
    C'est ce qui va se passer si le formulaire est correctement rempli, lorsque la page se réaffiche, on envoie le mail et on affiche que le remerciement ...
    Oki...En fait j'ai plusieurs soucis. Cela ne fonctionne pas pour je pense plusieurs raisons :

    Je créée un div que je nomme différement, est ce que cela peut poser des problèmes? Je ne le nome pas "contact" car j'ai un autre div dans ma page qui s'appelle déjà de cette façon là.

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

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Non peu importe comment tu nommes ta div ayant le texte de remerciement.
    As-tu un message d'erreur ?

  13. #13
    Candidat au Club
    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
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Non peu importe comment tu nommes ta div ayant le texte de remerciement.
    As-tu un message d'erreur ?
    Je n'ai pas de message d'erreur, je reçois bien le formulaire mais pas de "remerciements"..Je ne comprend pas trop pourquoi d'ailleurs alors que dans ton exemple cela fonctionne...

    Ici le formulaire se réaffiche avec le texte dans chaque champs.

    @près d'autres essais, je ne reçois même plus de mail...

    En fait, il y a juste ton code qui fonctionne ( que j'ai copié collé dans une page pour essayer ) je reçois des mails que de celui-là..L'autre code en dessous sur ma page définitive ne fonctionne pas.

    Voici ma page :

    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
     
    <?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=iso-8859-1" />
    <title>[Contact] www.atc73.com</title>
    <link href="styles.css" rel="stylesheet" type="text/css" />
    <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
    <style>
    .Input_erreur {
    background-color:#FF3333;
    }
    </style>
    </head>
    <body>
    <div id="page">
    <!--Debut header -->
      <div id="header">
      <!--Debut header valide w3c detection flash playerflash -->
      <script type="text/javascript" src="swfobject.js"></script>
      <div id="flashcontent"><script type="text/javascript">
    AC_FL_RunContent( 'type','application/x-shockwave-flash','data','header.swf','width','800','height','180','movie','header','quality','high' ); //end AC code
    </script>
      </div>  
      <script type="text/javascript">
      var so = new SWFObject("header.swf", "header", 800, 180, 7, "#336699"); 
       so.write("flashcontent");</script>
      <!--Fin header valide w3c detection flash playerflash flash -->  
      </div> 
      <!--Fin header valide w3c detection flash playerflash flash -->
      <!--Debut menu -->
      <div id="menu">
      <!--Debut navigateur valide w3c detection flash playerflash flash-->
        <script type="text/javascript" src="swfobject.js"></script>	
        <div id="flascontent8"><script type="text/javascript">
    AC_FL_RunContent( 'type','application/x-shockwave-flash','data','navigation.swf','width','150','height','420','movie','navigation','quality','high' ); //end AC code
    </script>
    </div>	
      <script type="text/javascript">
      var so = new SWFObject("navigation.swf", "navigation", 150, 420, 7, "#336699"); 
       so.write("flashcontent8");</script>
    	<!--Fin navigateur valide w3c detection flash playerflash flash-->
      </div>
      <!--Fin menu -->
      <!--Debut conteneur -->  
      <div id="conteneur">
      <!--Debut formulaire -->
        <?php if($formulaire == "KO") { ?>
        <div id="contact">
    <form method="post" action="contact.php"onSubmit="return checkrequired(this)" >
    	<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="infos" 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" />
    	  <input name="R&eacute;initialiser" type="reset" value="Annuler" onclick="change_class();" /></p>
    	</form>
        </div>
    <?php } ?>
    <?php if($formulaire == "OK") { ?>
    <div id="remerciements">merci</div>
    <?php } ?>
    <!--Fin formulaire -->
      </div>  
      <!--Fin conteneur -->
      <!--Debut pied -->
      <div id="pied">
        <div id="copyright"></div>
      </div>
      <!--Fin pied -->
    </div>
    </body>
    </html>

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

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Il manque le name à ton bouton submit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="Envoyer ces informations" name="Envoyer" />

  15. #15
    Candidat au Club
    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
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Il manque le name à ton bouton submit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="Envoyer ces informations" name="Envoyer" />

    Oups...Je ne l'avais pas vu...Effectivement maintenant cela fonctionne. J'ai en revanche mes "remerciements" qui se collent au header et mes messages se retrouvent dans mon dossier span de ma messagerie...

    -___-

    J'ai déjà mal à la tête !

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

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Pour les remerciements, à toi de mettre en forme pour que ta div se retrouve en milieu de page par exemple ...
    Pour ce qui est des SPAM, çà le faisait pas avant ?

  17. #17
    Candidat au Club
    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
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Pour les remerciements, à toi de mettre en forme pour que ta div se retrouve en milieu de page par exemple ...
    Pour ce qui est des SPAM, çà le faisait pas avant ?
    Yep, j'ai réglé le soucis du div. Pour le span si en fait cela me l'a toujours fait.....Lorsque je reçois le mail je n'ai rien à DE..., peut-être que c'est à cause de ça. l'objet c'est ok mais en fait je ne sais pas de qui vient le mail..

    Mail header n'a pas l'air de fonctionner en fait.

    J'ai modifié le mail headers j'ai bien un expediteur cette fois-ci sauf que je reçois toujours les mails dans le dossier spam.

  18. #18
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Salut,
    Je suis un peu perdu par rapport à la vérification d'un formulaire.
    Si je prend l'exemple greg73 et la première réponse de jumano.Je n'arrive pas à savoir dans quel fichier se fait le contrôle. Selon ce que j'ai pu lire du côté du client on utilise javascript et du côté du serveur on utilise du php.
    Le contrôle des champs à était fait dans quel fichier?contact.php ou
    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
    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>
    Si c'est dans traitement.php, cela voudrait dire que si l'on veut avoir les messages d'erreur à coté des champs il faut recopier le code du formulaire dans ce fichier. Et bien sur le modifier un peu

  19. #19
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,
    Le contrôle des champs à était fait dans quel fichier?contact.php ou
    traitement.php?
    Il aurait fallu prendre le temps de lire les commentaires du script de Jumano, en 3ème ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Ensuite si aucun champs n'est vide donc <>"" (différent de vide)
    if(($_POST['nom'] != "") && ($_POST['prenom'] != "") && ($_POST['adresse'] != "") AND ($_POST['ville']!= "") && ($_POST['telephone'] != "") && ($_POST['email'] != "") && ($_POST['message'] != "")) {
    Cette condition a pour but de vérifier que les champs ne sont pas vides. Ce traitement est effectué par le serveur une fois le formulaire validé (postback on page). Tu peux vérifier les champs côté client (avant l'envoi de la validation au serveur), la page n'est donc pas rafraichie.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script type="text/javascript">
        function verificationFormulaire(f){
            var isGood = (f.titre != '' && f.message!= '');
            if(!isGood){
                alert('Veuillez remplir les champs');
            }
            return isGood;
        }
    </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="verificationFormulaire(this);">
        <input type="text" name="titre" value="Saisissez votre titre"/>
        <input type="text" name="message" value=""/>
        <input type="submit" name="Valider" value="Valider"/>
    </form>

  20. #20
    Candidat au Club
    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
    Points : 2
    Points
    2
    Par défaut
    Merci @ tous pour m'avoir expliqué et aider pour ce formulaire, les explications de Rumano on été très claire.

    Charles9, tu as pleins de possibilités pour le formulaire niveau vérification, traitement..Pour ma part, tout ce passe dans une même page : contact.php + remerciements sur la même page ( à la place du formulaire )

    Regarde bien le code, tout y est. N’hésites pas si tu as des questions !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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