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 :

problème formulaire mail


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Femme Profil pro
    Infographiste
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Points : 2
    Points
    2
    Par défaut problème formulaire mail
    Bonjour !
    Je viens sur ce forum car j'ai besoin d'aide.
    je suis en train de créer mon premier site en html/css pour esperer rentrer en formation bientot (on m'a demander ça comme un test)
    On ne m'à pas demander d'utiliser le PHP mais j'en ai besoin pour créer mon formulaire de contact. celui ci est finit mais je n'arrive pas à faire en sorte que lorsque l'on clique sur "soumettre" le message s'envoie sur mon mail.

    voici mon code html au niveau de mon formulaire :

    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
    <div id="contact"><!--CORPS-->
    <p class="formulaire"> <form method="post" action="traitement.php">
     
    <p><select name="pays" id="pays" tabindex="10">
               <option value="M.">M.</option>
               <option value="Mme">Mme</option>
               <option value="Mlle">Melle</option>
           </select></p>
     
           <p><label for="Nom">Nom :</label>
     
           <input type="text" name="Nom" tabindex="20" /></p>
     
           <p><label for="Prenom">Prenom :</label>
     
           <input type="text" name="Prenom" tabindex="30" /></p>
     
           <p><label for="Mail">Mail :</label>
     
           <input type="text" name="Mail" tabindex="40"/></p>
     
    <p><label for="message">Votre Message :</label>
     
    <textarea type="text" name="message" tabindex="50"></textarea></p>
     
    <input type="submit" />
     
    </form>
     
       </p>
     
       </div>

    et voici mon code 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
    <?php
     
    if(isset($_POST) && isset($_POST['civilite']) && isset($_POST['nom'] && isset($_POST['prenom'] && isset($_POST['mail'] && isset($_POST['message'])) {
            extract ($_POST);
            if (!empty(&civilite) && !empty(&nom) && !empty(&prenom) && !empty(&mail) !empty(&message)) {
                    $message=str_replace("\'",'","'",$message);
                    $destinataire="xxxxxxxxxxx@gmail.com";
                    $sujet="Formulaire de contact";
                    $msg="Un nouveau message est arrivé \n
                    Civilite : $civilite \n
                    Nom : $nom \n
                    Prenom : $prenom \n
                    Mail : $mail \n
                    Message : $message";
                    $entete="From: $nom $prenom \n Reply-to: $mail";
                    mail($destinataire, $sujet, $msg, $entete);
                    echo "Le mail a bien été envoyé."
        }
        else{
             echo "Vous n'avez pas rempli tout les champs";
        }
    }
    ?>
    marjo
     
    Haut
    Merci d'avance pour votre aide.


    mille merci.
    marjo.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Est-ce que tu as accès à la fonction mail() sur le serveur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if (!empty(&civilite) && !empty(&nom) && !empty(&prenom) && !empty(&mail) !empty(&message)) {
    au lieu de &civilite etc..., il faudrait utiliser $civilite

  4. #4
    Candidat au Club
    Femme Profil pro
    Infographiste
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    sabotage,
    merci pour le tuto mais je n'ai malheureusement pas le temps de le regarder car il faut que le site soit terminer demain ou mercredi au plus tard.

    Tsilefy,
    oui j'ai un mail voila.net mais je ne m'en sert pas.
    ok je vais essayer avec "$"

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Non, il faut vérifier si l'envoi de mail est permis sur le serveur que tu utilises.

    Est-ce qu'un envoi simple d'email (sans tout le traitement des formulaires, avec utilisation directe de l'adresse email, de l'objet, du message etc) fonctionne?

    Si l'hébergeur n'autorise pas l'envoi de mail par PHP (pour des raisons de lutte antispam etc ...), ton script ne marchera jamais (en tout cas chez cet hébergeur). Si tu lance le script en local (sur Wamp par ex), est-ce que tu as aussi un serveur de mail d'installé?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    merci pour le tuto mais je n'ai malheureusement pas le temps de le regarder car il faut que le site soit terminer demain ou mercredi au plus tard.
    C'est clair que tu vas gagner du temps à bidouiller ton script actuel plutôt que de juste faire un essai avec un script qui fonctionne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Candidat au Club
    Femme Profil pro
    Infographiste
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Tsilefy,
    oui je pense car quand je met la balise "mailto" et que je clique dans mon formulaire sur soumettre" ça m'envoie dans une boite de messagerie style outlook (mais pour mac puisque je suis sous mac) et là la personne voit mon mail qui est placé directement dans "destinataire" mais je ne veut pas qu'il voit mon mail moi.... ni que de boite de messagerie s'ouvre.
    je sait pas si c'est ça dont tu parlez.


    par contre j'ai essayer avec $ mais ça ne marche toujours pas malheureusement.

  8. #8
    Candidat au Club
    Femme Profil pro
    Infographiste
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par sabotage Voir le message
    C'est clair que tu vas gagner du temps à bidouiller ton script actuel plutôt que de juste faire un essai avec un script qui fonctionne.
    lire un tuto, le comprendre après la 3ème relecture, l'apprendre, le réaliser c'est bien plus long et compliquer que de me donner la solution directe...

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Sabotage a raison. Lire le tuto te prendra une demi-heure au plus, et tu pourra copier/tester directement les exemples qui marchent (et ainsi tu auras la preuve que ce qui ne marche pas, c'est la config de ton serveur).
    En l'occurrence, les liens mailto n'ont rien à voir avec PHP. Teste le 1er exemple du tutorial ("Mail de base"), s'il ne marche pas c'est ton serveur qui est en cause.

  10. #10
    Candidat au Club
    Femme Profil pro
    Infographiste
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    Sabotage a raison. Lire le tuto te prendra une demi-heure au plus, et tu pourra copier/tester directement les exemples qui marchent (et ainsi tu auras la preuve que ce qui ne marche pas, c'est la config de ton serveur).
    En l'occurrence, les liens mailto n'ont rien à voir avec PHP. Teste le 1er exemple du tutorial ("Mail de base"), s'il ne marche pas c'est ton serveur qui est en cause.
    Non car je ne comprend strictement rien au php et pour le moment je n'ai pas envie d'en savoir plus que ça j'ai déjà quelque difficulté avec le css et html, le css je l'ai appris il y à 1 semaine pile poile donc je ne vais pas me mélanger les pinceau avec du php, je sait que la balise mailto n'a rien a voir mais je ne peut pas me pencher sur le tuto avec moi ça ne durera pas une demie heure le temps que je comprenne mais bel et bien 3h voir plus.

    personne sait me dit "au vu de ce formulaire, ton code php doit etre exactement ça" ???

    merci d'avance

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,
    1- Tu as oublié un ";" après cette ligne
    echo "Le mail a bien été envoyé."
    2- Tu utilise quoi comme serveur? as tu configuré ton SMTP?

    A+.

  12. #12
    Candidat au Club
    Femme Profil pro
    Infographiste
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonsoir,
    1- Tu as oublié un ";" après cette ligne

    2- Tu utilise quoi comme serveur? as tu configuré ton SMTP?

    A+.
    j'ai changé mon code finalement j'ai betement copier/coller celui du tuto sans lire. j'ai juste changer biensure le mail, peut-être que j'ai loupé des trucs et qu'il fallait changé autre chose car ça marche toujours pas.

    est ce que voila est un serveur ?
    car en faite je charge mon dossier "images" et mes pages html ainsi que mon css sur mon hebergeur voila et c'est tout.

  13. #13
    Candidat au Club
    Femme Profil pro
    Infographiste
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    j'ai oublié de mettre le nouveau code, le voici donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
     
    <?php
    /* Si le formulaire est envoyé alors on fait les traitements */
    if (isset($_POST['envoye']))
    {
        /* Récupération des valeurs des champs du formulaire */
        if (get_magic_quotes_gpc())
        {
          $civilite		= stripslashes(trim($_POST['civilite']));
          $nom	     	= stripslashes(trim($_POST['nom']));
          $expediteur	= stripslashes(trim($_POST['email']));
          $sujet		= stripslashes(trim($_POST['sujet']));
          $message		= stripslashes(trim($_POST['message']));
        }
        else
        {
          $civilite		= trim($_POST['civilite']);
          $nom		    = trim($_POST['nom']);
          $expediteur	= trim($_POST['email']);
          $sujet		= trim($_POST['sujet']);
          $message		= trim($_POST['message']);
        }
     
        /* Expression régulière permettant de vérifier si le 
        * format d'une adresse e-mail est correct */
        $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
     
        /* Expression régulière permettant de vérifier qu'aucun 
        * en-tête n'est inséré dans nos champs */
        $regex_head = '/[\n\r]/';
     
        /* Si le formulaire n'est pas posté de notre site on renvoie 
        * vers la page d'accueil */
        if($_SERVER['HTTP_REFERER'] != 'http://www.marjorie.laforest.voila.net/traitement.php')
        {
          header('Location: http://marjorie.laforest.voila.net/');
        }
        /* On vérifie que tous les champs sont remplis */
        elseif (empty($civilite) 
               || empty($nom) 
               || empty($expediteur) 
               || empty($sujet) 
               || empty($message))
        {
          $alert = 'Tous les champs doivent être renseignés';
        }
        /* On vérifie que le format de l'e-mail est correct */
        elseif (!preg_match($regex_mail, $expediteur))
        {
          $alert = 'L\'adresse '.$expediteur.' n\'est pas valide';
        }
        /* On vérifie qu'il n'y a aucun header dans les champs */
        elseif (preg_match($regex_head, $expediteur) 
                || preg_match($regex_head, $nom) 
                || preg_match($regex_head, $sujet))
        {
            $alert = 'En-têtes interdites dans les champs du formulaire';
        }
        /* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
        elseif (!isset($_COOKIE['sent']))
        {
            /* Destinataire (votre adresse e-mail) */
            $to = 'marjo.laforest@gmail.com';
     
            /* Construction du message */
            $msg  = 'Bonjour,'."\r\n\r\n";
            $msg .= 'Ce mail a été envoyé depuis marjorie.laforest.voila.net par '.$civilite.' '.$nom."\r\n\r\n";
            $msg .= 'Voici le message qui vous est adressé :'."\r\n";
            $msg .= '***************************'."\r\n";
            $msg .= $message."\r\n";
            $msg .= '***************************'."\r\n";
     
            /* En-têtes de l'e-mail */
            $headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
     
            /* Envoi de l'e-mail */
            if (mail($to, $sujet, $msg, $headers))
            {
                $alert = 'E-mail envoyé avec succès';
     
                /* On créé un cookie de courte durée (ici 120 secondes) pour éviter de 
                * renvoyer un mail en rafraichissant la page */
                setcookie("sent", "1", time() + 120);
     
                /* On détruit la variable $_POST */
                unset($_POST);
            }
            else
            {
                $alert = 'Erreur d\'envoi de l\'e-mail';
            }
     
        }
        /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
        else
        {
            unset($_POST);
        }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html lang="fr">
    <head>
        <title>Contactez moi</title>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    </head>
    <body>
     
    <?php
    if (!empty($alert))
    {
        echo '<p style="color:red">'.$alert.'</p>';
    }
    ?>
     
    <form action="index.php" method="post">
        <p>
            <label for="civilite">Civilite :</label>
            <select id="civilite" name="civilite">
                <option 
                    value="mr"
                    <?php 
                        if (!isset($_POST['civilite']) || $_POST['civilite'] == 'mr')
                        {
                            echo ' selected="selected"';
                        }
                    ?>
                >
                    Monsieur
                </option>
                <option 
                    value="mme"
                    <?php 
                        if (isset($_POST['civilite']) && $_POST['civilite'] == 'mme')
                        {
                            echo ' selected="selected"';
                        }
                    ?>
                >
                    Madame
                </option>
                <option 
                    value="mlle"
                    <?php 
                        if (isset($_POST['civilite']) && $_POST['civilite'] == 'mlle')
                        {
                            echo ' selected="selected"';
                        }
                    ?>
                >
                    Mademoiselle
                </option>
            </select>
        </p>
        <p>
            <label for="nom">Nom/Prenom :</label>
            <input type="text" id="nom" name="nom" 
            	value="<?php echo (isset($_POST['nom'])) ? $nom : '' ?>" 
            />
        </p>
        <p>
            <label for="email">E-mail :</label>
            <input type="text" id="email" name="email" 
            	value="<?php echo (isset($_POST['email'])) ? $expediteur : '' ?>"
            />
        </p>
        <p>
            <label for="sujet">Sujet :</label>
            <input type="text" id="sujet" name="sujet" 
            	value="<?php echo (isset($_POST['sujet'])) ? $sujet : '' ?>"
            />
        </p>
        <p>
            <label for="message">Message :</label>
            <textarea id="message" name="message" cols="40" rows="4">
    			<?php echo (isset($_POST['message'])) ? $message : '' ?>
            </textarea>
        </p>
        <p>
            <input type="submit" name="envoye" value="Envoyer" />
        </p>
    </form>
     
    </body>
    </html>

Discussions similaires

  1. problème formulaire absent du mail reçu
    Par herve55 dans le forum Outlook
    Réponses: 0
    Dernier message: 28/09/2010, 09h47
  2. Problème envoi mail via formulaire
    Par sleeg dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/09/2010, 01h00
  3. [Spip] Problème Formulaire Mail Spip
    Par cai1us dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 26/03/2010, 15h10
  4. [PEAR][HTML_QuickForm] Formulaire mail
    Par keiser1080 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 24/03/2006, 00h36

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