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 :

Transmission incomplète des données d'un formulaire


Sujet :

Langage PHP

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    malheureusement, le message d'erreur est toujours là

    oups, désolé, j'ai oublier de supprimer une parenthèse sur la ligne.

    Bon alors là, et je te remercie, ça à l'air de fonctionner

    encore une dernière chose et je ne t'embete plus

    Comment positionner les messages d'erreurs à côté des différents champs (pour l'instant les erreurs s'affichent sur la ligne au dessus du champ non).

    Merci

  2. #22
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu fais quoi pour avoir ce message ?

    C'est bizarre je viens de tester sans les fichiers include et ca fonctionne correctement

    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
    <!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>
    <link rel="stylesheet" type="text/css" href="contact.css" />
    <style type="text/css">
    </style>
    </head>
    <body>
     
        <div id="page">
     
          <div id="gauche">
           <div id="zone_gauche">
            <p class="titre">Devenir distributeur</p>
            <p class="contenu">Vous êtes un professionnel du mariage ou de la bijouterie fantaisie, <a href="espace_pro.htm">devenez partenaire</a> ></p>
            <p class="titre">Espace Presse</p>
            <p class="contenu">Princesse d'un Jour dans la presse et sur le web, <a href="presse.htm">consultez nos articles</a> ></p>
            <p class="titre">Partenaires Web</p>
            <p class="contenu">Princesse d'un Jour prend soin de sélectionner pour vous les meilleurs <a href="net-partenaires.htm">sites partenaires</a> ></p>
            </div>   
          </div>
          <div id="centre">
           <div id="zone_haut">
             <p id="breadcrumb">Vous êtes ici: <a href="index.htm">Accueil</a> > <a href="contact.htm">Contact</a></p>
           <div id="formulaire">
           <p class="intro">Pour connaître les distributeurs de nos bijoux, veuillez compléter <a href="points-de-vente.htm">le formulaire "Points de vente"</a>.<br />Vous pouvez ici contacter la créatrice des bijoux Princesse d'un Jour. Nous vous répondrons dans les meilleurs délais</p><br/>
    <?php
    if(isset($_POST['action']))
    {
      if(empty($_POST['nom']))
        echo "Erreur: le champ nom n'a pas été rempli"; 
      else if(empty($_POST['email']))
          echo "Erreur: Manque mail"; 
      else if(empty($_POST['message']))
          echo "Erreur: pas de message"; 
      else
      {
        $destinataire = 'nom@domaine.fr';
        $titre= "Demande de points de vente";
        $headers = 'From: '.$_POST['email'].' <'.$_POST['email'].'>'."\r\n";
        $message = "";
        $message .= "nom: ".$_POST['nom']."\n";
        $message .= "prenom: ".$_POST['prenom']."\n";
        $message .= "email: ".$_POST['email']."\n";
        $message .= "message: ".$_POST['message']."\n";
     
        if(mail($destinataire,$titre,$message,$headers))
          echo '<hr/>Les informations ont bien été transmises.'; 
      }
    }
    ?>
    <form method="post" action="ok.php">
    <p class="titre">Vos coordonnées</p>
    <p><label for="nom">Votre nom *</label><input class="textfield" type="text" name="nom" id="nom" value="" title="Veuillez entrer votre nom" /></p> 
    <p><label for="prenom">Votre prénom *</label><input class="textfield" type="text" name="prenom" id="prenom" value="" title="Veuillez entrer votre prénom" /></p>  
    <p><label for="email">Votre e-mail *</label><input class="textfield" type="text" name="email" id="email" value="" title="Veuillez entrer votre e-mail" /></p>
    <p class="title">Votre message</p>
    <p><label for="message">A vous la parole *</label><textarea name="message" cols="41" rows="4" id="message" title="Veuillez entrez ici votre message"></textarea></p>
    <p id="envoyer"><input type="image" alt="Envoyer" src="images/submit.jpg" /><input type="hidden" name="action" value="envoyer" /></p>
    </form> 
    <p id="obligatoire">* Champs obligatoires. Les données collectées via ce formulaire resteront strictement confidentielles</p>
    </div>
     
     
          </div>
          </div>
          <div id="pied">
            <p>Copyright © 2006 Princesse d'un Jour. Tous droits réservés. Princesse d'un Jour® est une marque déposée.</p>
            <p>Sites partenaires : <a href="http://www.noces-provencales.com">Organisation de mariage en provence</a> avec Noces-Provencales.com | <a href="http://www.notremariage.net/decouvrir.htm">NotreMariage.net</a></p>
            </div>
        </div>
      </body>
    </html>

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    oups, désolé, j'ai oublier de supprimer une parenthèse sur la ligne.

    Bon alors là, et je te remercie, ça à l'air de fonctionner

    encore une dernière chose et je ne t'embete plus

    Comment positionner les messages d'erreurs à côté des différents champs (pour l'instant les erreurs s'affichent sur la ligne au dessus du champ non).

    Merci
    je ne suis pas sûr que tu aies vu ma réponse précédente...

    En fait pour mes includes, j'ai mis ça dans mon HTACCESS (pour renommer mes pages php en pages htm):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AddType application/x-httpd-php .htm
    Peut être que c'est ça ?

  4. #24
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Pour ce qui est du message d'erreur à coté du champ il faut changer les tests et faire le echo à coté du champ en question.

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    Bon si j'ai compris

    Pour afficher le message d'erreur à côté du champ nom, je fais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <p><label for="nom">Votre nom *</label><input class="textfield" type="text" name="nom" id="nom" value="" title="Veuillez entrer votre nom" /><?php if(empty($_POST['nom']))
        echo "Erreur: le champ nom n'a pas été rempli"?></p>
    Mais je vois pas ce qu'il faut changer ici

    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
     
    <?php
    if(isset($_POST['action']))
    {
      if(empty($_POST['nom']))
        echo "Erreur: le champ nom n'a pas été rempli"; 
      else if(empty($_POST['prenom']))
          echo "Erreur: le champ prenom n'a pas été rempli"; 
      else if(empty($_POST['email']))
          echo "Erreur: le champ email n'a pas été rempli"; 
      else if(empty($_POST['message']))
          echo "Erreur: le champ message n'a pas été rempli"; 
      else
      {
        $destinataire = 'nom@domaine.fr';
        $titre= "Demande de points de vente";
        $headers = 'From: '.$_POST['email'].' <'.$_POST['email'].'>'."\r\n";
        $message = "";
        $message .= "nom: ".$_POST['nom']."\n";
        $message .= "prenom: ".$_POST['prenom']."\n";
        $message .= "email: ".$_POST['email']."\n";
        $message .= "message: ".$_POST['message']."\n";
     
        if(mail($destinataire,$titre,$message,$headers))
          echo '<hr/>Les informations ont bien été transmises.'; 
      }
    }
    ?>

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    bon j'ai tenté de mettre ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p><label for="nom">Votre nom *</label><input class="textfield" type="text" name="nom" id="nom" value="" title="Veuillez entrer votre nom" /><?php if (isset($_POST['nom'])) echo 'Erreur: le champ nom n\'a pas été rempli'?>
    Ca m'affiche bien le message d'erreur à côté du champ mais le formulaire est tout de même envoyé

  7. #27
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as tout compris et donc dans ce cas tu fais comme tu as commencé.

    Par contre il faut retirer les tests du début ca sert à rien de le faire deux fois.

    Et pour l'envoi tu testes tout d'un coup dans un seul if

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    Bon la partie 1, j'ai pigé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <form method="post" action="contact.php">
    <p class="titre">Vos coordonnées</p>
    <p><label for="nom">Votre nom *</label><input class="textfield" type="text" name="nom" id="nom" value="" title="Veuillez entrer votre nom" /><?php if (isset($_POST['nom']))
       echo 'Erreur: le champ nom n\'a pas été rempli'?></p> 
    <p><label for="prenom">Votre prénom *</label><input class="textfield" type="text" name="prenom" id="prenom" value="" title="Veuillez entrer votre prénom" /><?php if (isset($_POST['prenom']))
       echo 'Erreur: le champ prenom n\'a pas été rempli'?></p>  
    <p><label for="email">Votre e-mail *</label><input class="textfield" type="text" name="email" id="email" value="" title="Veuillez entrer votre e-mail" /><?php if (isset($_POST['email']))
       echo 'Erreur: le champ email n\'a pas été rempli'?></p>
    <p class="title">Votre message</p>
    <p><label for="message">A vous la parole *</label><textarea name="message" cols="41" rows="4" id="message" title="Veuillez entrez ici votre message"></textarea><?php if (isset($_POST['message']))
       echo 'Erreur: le champ message n\'a pas été rempli'?></p>
    <p id="envoyer"><input type="image" alt="Envoyer" src="images/submit.jpg" /><input type="hidden" name="action" value="envoyer" /></p>
    </form>
    J'ai retiré ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if(isset($_POST['action']))
    {
      if(empty($_POST['nom']))
        echo "Erreur: le champ nom n'a pas été rempli"; 
      else if(empty($_POST['prenom']))
          echo "Erreur: le champ prenom n'a pas été rempli"; 
      else if(empty($_POST['email']))
          echo "Erreur: le champ email n'a pas été rempli"; 
      else if(empty($_POST['message']))
          echo "Erreur: le champ message n'a pas été rempli"; 
      else
      {
    mais je bloque sur
    Et pour l'envoi tu testes tout d'un coup dans un seul if

  9. #29
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty($_POST['nom'])&&!empty($_POST['prenom'])&&!empty($_POST['email'])&&!empty($_POST['message']))
    A mettre à la place de la série de if

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    Kerod,

    Voici la derniere mouture...

    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
     
    <?php
    if(!empty($_POST['nom'])&&!empty($_POST['prenom'])&&!empty($_POST['email'])&&!empty($_POST['message']))
    {
     
        $destinataire = 'nom@domaine.fr';
        $titre= "Demande de points de vente";
        $headers = 'From: '.$_POST['email'].' <'.$_POST['email'].'>'."\r\n";
        $message = "";
        $message .= "nom: ".$_POST['nom']."\n";
        $message .= "prenom: ".$_POST['prenom']."\n";
        $message .= "email: ".$_POST['email']."\n";
        $message .= "message: ".$_POST['message']."\n";
     
        if(mail($destinataire,$titre,$message,$headers))
          echo '<hr/>Les informations ont bien été transmises.'; 
      }
     
    ?>
    <form method="post" action="contact.php">
    <p class="titre">Vos coordonnées</p>
    <p><label for="nom">Votre nom *</label><input class="textfield" type="text" name="nom" id="nom" value="" title="Veuillez entrer votre nom" /><?php if (isset($_POST['nom']))
       echo 'Erreur: le champ nom n\'a pas été rempli'?></p> 
    <p><label for="prenom">Votre prénom *</label><input class="textfield" type="text" name="prenom" id="prenom" value="" title="Veuillez entrer votre prénom" /><?php if (isset($_POST['prenom']))
       echo 'Erreur: le champ prenom n\'a pas été rempli'?></p>  
    <p><label for="email">Votre e-mail *</label><input class="textfield" type="text" name="email" id="email" value="" title="Veuillez entrer votre e-mail" /><?php if (isset($_POST['email']))
       echo 'Erreur: le champ email n\'a pas été rempli'?></p>
    <p class="title">Votre message</p>
    <p><label for="message">A vous la parole *</label><textarea name="message" cols="41" rows="4" id="message" title="Veuillez entrez ici votre message"></textarea><?php if (isset($_POST['message']))
       echo 'Erreur: le champ message n\'a pas été rempli'?></p>
    <p id="envoyer"><input type="image" alt="Envoyer" src="images/submit.jpg" /><input type="hidden" name="action" value="envoyer" /></p>
    </form>
    Mais maintenant, même lorsque les champs sont remplis, j'ai les messages d'erreurs qui s'affichent et ça envoie l'email

  11. #31
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    mince Kerod est parti

    J'ai dû l'épuiser avec ce foutu formulaire

  12. #32
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Et comme ça :
    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
    <?php
    $nom = isset($_POST['nom'])?$_POST['nom']:'';
    $prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
    $email = isset($_POST['email'])?$_POST['email']:'';
    $message = isset($_POST['message'])?$_POST['message']:'';
     
    if(isset($_POST['action']) && !empty($nom)&&!empty($prenom)&&!empty($email)&&!empty($message))
    {
        $destinataire = 'nom@domaine.fr';
        $titre= "Demande de points de vente";
        $headers = 'From: '.$email.' <'.$email.'>'."\r\n";
        $message = "";
        $message .= "nom: ".$nom."\n";
        $message .= "prenom: ".$prenom."\n";
        $message .= "email: ".$email."\n";
        $message .= "message: ".$message."\n";
     
        if(mail($destinataire,$titre,$message,$headers))
          echo '<hr/>Les informations ont bien été transmises.'; 
    }
    ?>
    <form method="post" action="contact.php">
    <p class="titre">Vos coordonnées</p>
    <p>
    <label for="nom">Votre nom *</label>
    <input class="textfield" type="text" name="nom" id="nom" value="<?php echo $nom; ?>" title="Veuillez entrer votre nom" />
    <?php if (empty($nom)) echo 'Erreur: le champ nom n\'a pas été rempli' ?>
    </p> 
    <p><label for="prenom">Votre prénom *</label>
    <input class="textfield" type="text" name="prenom" id="prenom" value="<?php echo $prenom; ?>" title="Veuillez entrer votre prénom" />
    <?php if (empty($prenom)) echo 'Erreur: le champ prenom n\'a pas été rempli' ?>
    </p>  
    <p><label for="email">Votre e-mail *</label><input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
    <?php if (empty($email))  echo 'Erreur: le champ email n\'a pas été rempli' ?></p>
    <p class="title">Votre message</p>
    <p><label for="message">A vous la parole *</label><textarea name="message" cols="41" rows="4" id="message" title="Veuillez entrez ici votre message"><?php echo $message; ?></textarea>
    <?php if (empty($message)) echo 'Erreur: le champ message n\'a pas été rempli' ?></p>
    <p id="envoyer"><input type="image" alt="Envoyer" src="images/submit.jpg" /><input type="hidden" name="action" value="envoyer" /></p>
    </form>

  13. #33
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    Re bonjour Kerod

    J'ai testé ton code, avec un succès mitigé

    1/ Quand j'affiche le formulaire, tous les champs d'erreur apparaissent

    1/ Quand on renseigne tous les champs, le message part et ça m'affiche "les infos ont bien été transmises" mais les infos nom, prenom, email et message s'affichent dans le champ "a vous la parole)

    1/ Quand je renseigne le champ non et clique sur envoyer, les messages d'erreurs arrivent (et même pour le champ non qui avait été renseigné...)

    Si tu as encore un peu de patience avec ce formulaire

    Et encore une chose, m'email que je reçois comprend les champs suivants

    nom: oijoi
    prenom: ojioij
    email: ijo
    message: nom: oijoi
    prenom: ojioij
    email: ijo

    donc avec les chamos prenom et nom en double

    Edit :
    Et encore une chose, m'email que je reçois comprend les champs suivants

    nom: oijoi
    prenom: ojioij
    email: ijo
    message: nom: oijoi
    prenom: ojioij
    email: ijo

    donc avec les chamos prenom et nom en double
    1/ Quand on renseigne tous les champs, le message part et ça m'affiche "les infos ont bien été transmises" mais les infos nom, prenom, email et message s'affichent dans le champ "a vous la parole)
    J'ai réglé ce problème en changeant le champ "message" par "contenu"...

    Il y avait avant 2 variables qui avaient le même nom (message)

    Du coup, le problème suivant a été résolu
    1/ Quand je renseigne le champ non et clique sur envoyer, les messages d'erreurs arrivent (et même pour le champ non qui avait été renseigné...)
    Le dernier soucis est donc l'affichage des champs erreurs dès le chargement de la page du formulaire

  14. #34
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Testes avec ce code (il y a pas l'envoi du mail pris en compte), d'abord tel qu'il est puis après ajoute le code d'envoi

    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
    <?php
    $nom = isset($_POST['nom'])?$_POST['nom']:'';
    $prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
    $email = isset($_POST['email'])?$_POST['email']:'';
    $message = isset($_POST['message'])?$_POST['message']:'';
    $erreur = '&nbsp;&nbsp;<font style="color:#FF0000;font-weight:bold">Ce champ est obligatoire !!!</font>'; 
    ?>
    <form method="post" action="contact.php">
      <p class="titre">Vos coordonnées</p>
      <p>
        <label for="nom">Votre nom *</label>
        <input class="textfield" type="text" name="nom" id="nom" value="<?php echo $nom; ?>" title="Veuillez entrer votre nom" />
        <?php echo empty($nom)?$erreur:''; ?>
      </p>
      <p>
        <label for="prenom">Votre prénom *</label>
        <input class="textfield" type="text" name="prenom" id="prenom" value="<?php echo $prenom; ?>" title="Veuillez entrer votre prénom" />
        <?php echo empty($prenom)?$erreur:''; ?>
      </p>
      <p>
        <label for="email">Votre e-mail *</label>
        <input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
        <?php echo empty($email)?$erreur:''; ?>
      </p>
      <p class="title">Votre message</p>
      <p>
        <label for="message">A vous la parole *</label>
        <textarea name="message" cols="41" rows="4" id="message" title="Veuillez entrez ici votre message"><?php echo $message; ?></textarea>
        <?php echo empty($message)?$erreur:''; ?>
      </p>
      <p id="envoyer">
        <input type="image" alt="Envoyer" src="images/submit.jpg" />
        <input type="hidden" name="action" value="envoyer" />
      </p>
    </form>
    Le voilà

  15. #35
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    Bon alors, j'ai copié ton code et j'ai inséré le code d'envoi précédent...

    Ce qui donne

    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
     
    <?php
    $nom = isset($_POST['nom'])?$_POST['nom']:'';
    $prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
    $email = isset($_POST['email'])?$_POST['email']:'';
    $message = isset($_POST['message'])?$_POST['message']:'';
    $erreur = '&nbsp;&nbsp;<font style="color:#FF0000;font-weight:bold">Ce champ est obligatoire !!!</font>'; 
     
    if(isset($_POST['action']) && !empty($nom)&&!empty($prenom)&&!empty($email)&&!empty($contenu))
    {
        $destinataire = 'non@domaine.fr';
        $titre= "Demande de points de vente";
        $headers = 'From: '.$email.' <'.$email.'>'."\r\n";
        $message = "";
        $message .= "nom: ".$nom."\n";
        $message .= "prenom: ".$prenom."\n";
        $message .= "email: ".$email."\n";
        $message .= "contenu: ".$contenu."\n";
     
        if(mail($destinataire,$titre,$message,$headers))
          echo '<hr/>Les informations ont bien été transmises.'; 
    }
     
    ?>
    <form method="post" action="contact2.php">
      <p class="titre">Vos coordonnées</p>
      <p>
        <label for="nom">Votre nom *</label>
        <input class="textfield" type="text" name="nom" id="nom" value="<?php echo $nom; ?>" title="Veuillez entrer votre nom" />
        <?php echo empty($nom)?$erreur:''; ?>
      </p>
      <p>
        <label for="prenom">Votre prénom *</label>
        <input class="textfield" type="text" name="prenom" id="prenom" value="<?php echo $prenom; ?>" title="Veuillez entrer votre prénom" />
        <?php echo empty($prenom)?$erreur:''; ?>
      </p>
      <p>
        <label for="email">Votre e-mail *</label>
        <input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
        <?php echo empty($email)?$erreur:''; ?>
      </p>
      <p class="title">Votre message</p>
      <p>
        <label for="message">A vous la parole *</label>
        <textarea name="message" cols="41" rows="4" id="message" title="Veuillez entrez ici votre message"><?php echo $message; ?></textarea>
        <?php echo empty($message)?$erreur:''; ?>
      </p>
      <p id="envoyer">
        <input type="image" alt="Envoyer" src="images/submit.jpg" />
        <input type="hidden" name="action" value="envoyer" />
      </p>
    </form>
    Résultats

    1/ Les champs erreurs s'affichent toujours lors du chargement du formulaire

    2/ L'email ne part plus



    Je viens de modifier le "message" par "contenu", et je reçois à nouveau l'email

    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
     
    <?php
    $nom = isset($_POST['nom'])?$_POST['nom']:'';
    $prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
    $email = isset($_POST['email'])?$_POST['email']:'';
    $contenu = isset($_POST['contenu'])?$_POST['contenu']:'';
    $erreur = '&nbsp;&nbsp;<font style="color:#FF0000;font-weight:bold">Ce champ est obligatoire !!!</font>'; 
     
    if(isset($_POST['action']) && !empty($nom)&&!empty($prenom)&&!empty($email)&&!empty($contenu))
    {
        $destinataire = 'nom@domaine.fr';
        $titre= "Demande de points de vente";
        $headers = 'From: '.$email.' <'.$email.'>'."\r\n";
        $message = "";
        $message .= "nom: ".$nom."\n";
        $message .= "prenom: ".$prenom."\n";
        $message .= "email: ".$email."\n";
        $message .= "contenu: ".$contenu."\n";
     
        if(mail($destinataire,$titre,$message,$headers))
          echo '<hr/>Les informations ont bien été transmises.'; 
    }
     
    ?>
    <form method="post" action="contact2.php">
      <p class="titre">Vos coordonnées</p>
      <p>
        <label for="nom">Votre nom *</label>
        <input class="textfield" type="text" name="nom" id="nom" value="<?php echo $nom; ?>" title="Veuillez entrer votre nom" />
        <?php echo empty($nom)?$erreur:''; ?>
      </p>
      <p>
        <label for="prenom">Votre prénom *</label>
        <input class="textfield" type="text" name="prenom" id="prenom" value="<?php echo $prenom; ?>" title="Veuillez entrer votre prénom" />
        <?php echo empty($prenom)?$erreur:''; ?>
      </p>
      <p>
        <label for="email">Votre e-mail *</label>
        <input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
        <?php echo empty($email)?$erreur:''; ?>
      </p>
      <p class="title">Votre message</p>
      <p>
        <label for="message">A vous la parole *</label>
        <textarea name="contenu" cols="41" rows="4" id="contenu" title="Veuillez entrez ici votre message"><?php echo $contenu; ?></textarea>
        <?php echo empty($contenu)?$erreur:''; ?>
      </p>
      <p id="envoyer">
        <input type="image" alt="Envoyer" src="images/submit.jpg" />
        <input type="hidden" name="action" value="envoyer" />
      </p>
    </form>
    Mais les champs erreurs s'affichent toujours lors du chargement du formulaire

  16. #36
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    C'est mieux maintenant :
    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
    <?php
    $nom = isset($_POST['nom'])?$_POST['nom']:'';
    $prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
    $email = isset($_POST['email'])?$_POST['email']:'';
    $message = isset($_POST['message'])?$_POST['message']:'';
    $erreur = '&nbsp;&nbsp;<font style="color:#FF0000;font-weight:bold">Ce champ est obligatoire !!!</font>'; 
    ?>
    <form method="post" action="contact.php">
      <p class="titre">Vos coordonnées</p>
      <p>
        <label for="nom">Votre nom *</label>
        <input class="textfield" type="text" name="nom" id="nom" value="<?php echo $nom; ?>" title="Veuillez entrer votre nom" />
        <?php echo (isset($_POST['nom']) && empty($nom))?$erreur:''; ?>
      </p>
      <p>
        <label for="prenom">Votre prénom *</label>
        <input class="textfield" type="text" name="prenom" id="prenom" value="<?php echo $prenom; ?>" title="Veuillez entrer votre prénom" />
        <?php echo (isset($_POST['prenom'])&&empty($prenom))?$erreur:''; ?>
      </p>
      <p>
        <label for="email">Votre e-mail *</label>
        <input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
        <?php echo (isset($_POST['email'])&&empty($email))?$erreur:''; ?>
      </p>
      <p class="title">Votre message</p>
      <p>
        <label for="message">A vous la parole *</label>
        <textarea name="message" cols="41" rows="4" id="message" title="Veuillez entrez ici votre message"><?php echo $message; ?></textarea>
        <?php echo (isset($_POST['message'])&&empty($message))?$erreur:''; ?>
      </p>
      <p id="envoyer">
        <input type="image" alt="Envoyer" src="images/submit.jpg" />
        <input type="hidden" name="action" value="envoyer" />
      </p>
    </form>

  17. #37
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    chapeau bas, c'est impec !!!

    Une dernière question pour cloturer ce post (et oui, on y arrive ).

    Est-il possible que lorsque le formulaire est envoyé, une nouvelle page affiche le message "Les informations ont bien été transmises". (et donc qu'au final ce message n'apparaisse pas sur la page du formulaire ?)

    Ou bien plus simple, d'afficher le message de succès et de masquer le formulaire sur cette page ?

    Thanks again

  18. #38
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    Bonjour à tous les membres

    Une dernière question pour cloturer ce post (et oui, on y arrive ).

    Est-il possible que lorsque le formulaire est envoyé, une nouvelle page affiche le message "Les informations ont bien été transmises". (et donc qu'au final ce message n'apparaisse pas sur la page du formulaire ?)

    Ou bien plus simple, d'afficher le message de succès et de masquer le formulaire sur cette page ?
    Quelqu'un a une idée ? Que faut-il modifier sur le code que Kerod a eu la gentillesse de de poster en bas ?

    Merci pour votre aide

  19. #39
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    D'ailleurs c'est ce que j'ai fait sur ma page.

    Il suffit de tester tu mets tout dans un test. Tu mets un test pour afficher le formulaire et les erreurs et un autre qui apparait que si le mail est parti

Discussions similaires

  1. [16F628] Transmission et réception asynchrone des données
    Par selmani300 dans le forum Autres architectures
    Réponses: 0
    Dernier message: 04/05/2009, 00h24
  2. non sauvegarde des données à la fermeture d'un formulaire
    Par zanou666 dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/10/2007, 14h20
  3. Réponses: 2
    Dernier message: 19/01/2007, 07h00
  4. Réponses: 3
    Dernier message: 27/09/2006, 19h50
  5. Réponses: 29
    Dernier message: 01/07/2006, 09h23

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