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

HTML Discussion :

Formulaire contact Php


Sujet :

HTML

  1. #1
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut Formulaire contact Php
    Bonjour,

    j'avais une page de contact (code ci-dessous) qui fonctionnait correctement sur un autre site il y a trois ans.
    Autant qu'il m'en souvienne je n'avais jamais eu de problème avec cette page contact sur ce site.

    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
     
    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>Contact</title>
    </head>
     
    <body>
        <h1>Contact</h1>
        <form method="post">
            <label>Email</label>
            <input type="email" name="email" required><br>
            <label>Message</label>
            <textarea name="message" required></textarea><br>
            <input type="submit">
        </form>
        <?php
        if (isset($_POST['message'])) {
            $position_arobase = strpos($_POST['email'], '@');
            if ($position_arobase === false)
                echo '<p>Votre email doit comporter un arobase.</p>';
            else {
                $retour = mail('maboite@gmail.com', 'Envoi depuis la page Contact', $_POST['message'], 'From: ' . $_POST['email']);
                if($retour)
                    echo '<p>Votre message a été envoyé.</p>';
                else
                    echo '<p>Erreur.</p>';
            }
        }
        ?>
    </body>
    </html>
    J'ai voulu l'utiliser sur un site que je suis en train de créer et si j'ai toujours le massage qui m'annonce que mon message a bien été envoyé, je ne reçois, en fait, aucun message dans la boite destinataire.
    Pourquoi les messages ne m'arrivent-ils plus ?

    boîte destinataire en @gmail.com
    site hébergé par Ovh

    Par avance merci,
    Fifi

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Gmail et Outlook sont réputés pour supprimer très rapidement des e-mails sans expliquer pourquoi (parfois ils n'apparaissent même pas dans le répertoire "indésirables").
    donc c'est pour ça que je ne les utilise plus depuis plusieurs années et je ne sais pas s'il existe une autre solution pour cela aujourd'hui.

  3. #3
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    Bonjour Mathieu
    j'ai essayé avec trois autres fournisseurs et le problème persiste
    J'ai de plus en plus l'impression que le message n'est pas transmis, qui ne part pas.
    fifi

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    C'est très possible qu'il ne partes pas. Peut-être a t-il été bloqué par OVH. Dans ton compte OVH, sélectionne ton hébergement, puis sur le menu Haut (à droite de "Tâches en cours"), cliques sur "Plus" et enfin sélectionnes "Scripts e-mails". Tu pourras voir l'état de ton service, s'il est écrit "actif" c'est bon.


    Après ton script n'est pas protégé, et c'est fort possible que ton formulaire soit piraté pour envoyer des mails frauduleux. Au minimum tu devrais protéger $_POST['email']:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $postemail = str_replace("\n", "", str_replace("\r", "", $_POST['email']));

    Sinon il existe aussi phpmailer qui offre toute les protections possibles et avec lequel on a le plus de chances de ne pas retrouver son email dans le dossier "courrier indésirable".

  5. #5
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    Merci ABCIWEB,

    je vais voir du côté de phpmailer

    Bonne journée

    fifi

  6. #6
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    j'ai vérifié l'état du service scripts e-mail de mon hébergement chez ovh, il est bien sur "actif" mais les messages n'arrivent toujours pas avec le code du message 1.

    Suite au message de ABCIWEB je me suis penché sur phpmailer.

    J'en suis ici :

    index.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
    <?php
     
    $result="";
     
    if(isset($_POST['submit'])){
    require 'phpmailer/PHPMailerAutoload.php';
    $mail = new PHPMailer;
     
    $mail->Host='smtp.gmail.com';
    $mail->Port=465;
    $mail->SMYPAuth=true;
    $mail->SMTPSecure='tls';
    $mail->Username='maboite@gmail.com';
    $mail->Password='monpass';
     
    $mail->setFrom($_POST['email'],$_POST['name']);
    $mail->addAddress('destbox@yahoo.fr');
    $mail->addReplyTo($_POST['email'],$_POST['name']);
     
    $mail->isHTML(true);
    $mail->Subject='Contact Site ECMTD';
    $mail->Body='<h1 align=center> Nom :'.$_POST['name'].'<br> Email : '.$_POST['email'].'<br>Message : '.$_POST['message'].'</h1>';
     
    if(!$mail->send()){
    $result="Votre message n'a pu être envoyé. Essayez à nouveau.";
    }
    else{
    $result="Merci de nous avoir contacté, nous répondrons à votre demande dans les plus brefs délais.";
    }
    }
     
    ?>
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="css/contactform.css">
        <title>Formulaire de contact</title>
     
    </head>
     
    <body>
        <div class="boite">
            <div class="container">
                <div class="titre">Contacter ECMTD</div>
                <h5><?= $result; ?></h5>
     
                <form action="" method="post" id="form-box">
                    <div>
                        <span>
                            <i class="fas fa-user"></i>
                        </span>
                    </div>
                    <span class="etiq">
                        Nom <font color=red>*</font><br>
                    </span>
                    <input type="text" class="champtext" name="name" id="name" placeholder="Votre nom ou le nom de votre société" required>
                    <br><br>
                    <span class="etiq">
                        Prénom <br>
                    </span>
                    <input type="text" name="firstname" id="firstname" class="champtext" placeholder="Votre prénom"><br><br>
                    <span class="etiq">
                        E-mail <font color=red>*</font><br>
                    </span>
                    <input type="email" name="email" id="email" class="champtext" placeholder="Votre email" required><br><br>
                    <span class="etiq">
                        N° téléphone <font color=red>*</font><br>
                    </span>
                    <input type="text" name="phone" id="phone" class="champtext" placeholder="Votre numéro de téléphone" required><br><br>
                    <span class="etiq">
                        Message <font color=red>*</font><br>
                    </span>
                    <textarea class="champarea" name="message" id="message" placeholder="Votre message" required></textarea>
                    <div class="pied">
                        <input class="bouton" type="submit" name="envoi" id="envoi" value="Envoyer">
                        <input class="bouton" type="reset" name="annul" id="annul" value="Annuler">
                    </div>
     
                </form>
            </div>
     
        </div>
     
    </body></html>

    contactform.css
    Code CSS : 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
    * {
        margin: 0;
        padding: 0;
        border-collapse: collapse;
    }
     
    a {
        outline: 0;
        text-decoration: none;
    }
     
    body {
        background-color: rgba(100, 126, 162, 0.78);
        font-family: serif;
    }
     
    .boite {
        height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center
    }
     
    .container {
        background-color: white;
        border-radius: 25px;
        width: 400px;
        height: auto;
    }
     
    .champtext {
        width: 370px;
        border-radius: 10px;
        border: solid 1px grey;
        background-color: white;
        height: 30px;
        font-family: serif;
        font-size: 15px;
        color: #605e5e;
        padding-left: 5px;
        margin-left: 10px;
        margin-top: 9px;
    }
     
    .champarea {
        width: 370px;
        border-radius: 10px;
        border: solid 1px grey;
        background-color: white;
        height: 90px;
        font-family: serif;
        font-size: 15px;
        color:#605e5e;
        padding-left: 5px;
        padding-top: 3px;
        margin-left: 10px;
        margin-top: 9px;
    }
     
    .titre {
        display: flex;
        align-items: center;
        font-size:20px;
        background-color: red;
        height: 50px;
        color: white;
        padding-left: 15px;
        margin-bottom: 20px;
        border-radius: 25px 25px 0 0;
    }
     
     
     
    .pied {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        background-color: red;
        height: 50px;
        margin-top: 15px;
        border-radius: 0 0 25px 25px;
    }
     
    .etiq {
        font-family:serif;
        color: navy;
        margin-left: 10px;
        margin-bottom: 20px;
        font-size: 16px;
    }
     
    .bouton {
        text-align: center;
        height: 25px;
        width: 120px;
        margin: 0 5px;
        border-radius: 15px;
        border: solid 1px white;
        background-color: red;
        color: white;
        font-size: 15x;
        font-weight: 500;
    }
     
    .bouton:hover{
        background-color: #cb0404;
    }


    la page formulaire de contact s'affiche correctement.
    Lorsque je clique sur "Envoyer" j'ai un message fugitif dans la barre d'état qui indique "transfert de données en cours" puis il y a disparition des informations saisies dans les différents champs du formulaire. Mais aucun message de confirmation de l'envoi ou d'erreur.

    Aucun message n'arrive sur destbox@yahoo.fr

    Ma boite gmail est configurée sur validation en deux étapes désactivée et accès moins sécurisé des applications activé.

    Je dois avouer que je tourne en rond depuis deux jours sur le sujet. J'ai pas mal cherché sur le web ainsi que sur youtube, mais je n'ai rien trouvé qui décrive la façon de faire, de A à Z.
    Tout semble toujours bien se passer, sauf que les messages n'arrivent pas et que je n'ai pas de messages d'erreur.

    Fifi

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    dans le traitement du formulaire, votre bouton d'envoi s'appelle "envoi" (attribut name) donc vous devez tester $_POST["envoi"]

  8. #8
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    Bonjour Mathieu

    if(isset($_POST['envoi'])){ à la place de if(isset($_POST['submit'])){ ??

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Si tu utilises $mail->Host='smtp.gmail.com'; je suppose que tu fais des tests en local. Si oui il est probable qu'il faille configurer le fichier phpini de ton serveur d'évaluation (en tous cas il faut le faire si on veut faire des tests en local avec la fonction mail). Après je t'ai conseillé phpmailer pour sa bonne réputation mais personnellement je ne l'utilise pas, donc je ne pourrai pas t'aider à le configurer dans les moindre détails.

  10. #10
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    Bonjour ABCIWEB

    après quelques essais infructueux j'ai abandonné PHPMailer.

    Je fais les essais directement sur le site.

    Actuellement j'utilise le code ci-dessous.

    L'envoi de message fonctionne très bien et est quasiment instantanné. Tous les messages envoyés sont arrivés dans la minute. Donc, dans tous les cas je garderai ce code php pour l'envoi de messages. Le problème est que le message est envoyé automatiquement dès l'accès à la page, sans que je puisse l'empêcher.

    Il me reste à régler :
    1) les relations entre le formulaire html et l'envoi du message pour pouvoir envoyer les infos saisies dans les champs du formulaire,
    2)le fait que le message est envoyé dès l'accès à la page, sans intervention de ma part.
    Ca je pense que ça sera réglé lorsque le 1) sera résolu.

    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
     
    <?php
     
       // *** A configurer
     
        $to    = "maboite@gmail.com";
     
       // adresse MAIL OVH de l’hébergement.
     
       $from  = "monsite@hosting.ovh.net";
     
       ini_set("SMTP", "smtp.monsite.com");   // Pour les hébergements mutualisés Windows de OVH
     
        // *** Laisser tel quel
     
       $JOUR  = date("Y-m-d");
       $HEURE = date("H:i");
       $Subject = "Contact site ECMTD - $JOUR $HEURE";
       $mail_Data = "";
       $mail_Data .= "<html> \n";
       $mail_Data .= "<head> \n";
       $mail_Data .= "<title> Subject </title> \n";
       $mail_Data .= "</head> \n";
       $mail_Data .= "<body> \n";
       $mail_Data .= "<br> \n";
       $mail_Data .= "<p>un message <font color=red> bla </font> bla </p><br> \n";
     
       //$mail_Data .= "Etc.<br> \n";
       $mail_Data .= "</body> \n";
       $mail_Data .= "</HTML> \n";
     
       $headers  = "MIME-Version: 1.0 \n";
       $headers .= "Content-type: text/html; charset=iso-8859-1 \n";
       $headers .= "From: $from  \n";
       $headers .= "Disposition-Notification-To: $from  \n";
     
     
       // Message de Priorité haute
     
       // -------------------------
     
       $headers .= "X-Priority: 1  \n";
       $headers .= "X-MSMail-Priority: High \n";
     
       $CR_Mail = TRUE;
       $CR_Mail = @mail ($to, $Subject, $mail_Data, $headers);
     
       if ($CR_Mail === FALSE)
          {
          echo " ### CR_Mail=$CR_Mail - Erreur g envoi mail <br> \n";
          }
       else
          {
          echo " *** CR_Mail=$CR_Mail - Mail g envoyé<br> \n";
          }
    ?>
     
     
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="css/contactform.css">
        <title>Formulaire de contact</title>
     
    </head>
     
    <body>
    <div class="boite" style="">
    		<div style="margin-bottom:15px;color:white;font-size:20px;text-align:center;"><?= "$CR_Mail - Votre message a été envoyé à ECMTD.<br> Nous vous répondrons dans les plus brefs délais." ?></div>
           <br>
            <div class="container">
                <div class="titre">Contacter ECMTD</div>
                <h5></h5>
     
                <form action="" method="post" id="form-box">
                    <div>
                        <span>
                            <i class="fas fa-user"></i>
                        </span>
                    </div>
                    <span class="etiq">
                        Nom <font color=red>*</font><br>
                    </span>
                    <input type="text" class="champtext" name="name" id="name" placeholder="Votre nom ou le nom de votre société" required>
                    <br><br>
                    <span class="etiq">
                        Prénom <br>
                    </span>
                    <input type="text" name="firstname" id="firstname" class="champtext" placeholder="Votre prénom"><br><br>
                    <span class="etiq">
                        E-mail <font color=red>*</font><br>
                    </span>
                    <input type="email" name="email" id="email" class="champtext" placeholder="Votre email" required><br><br>
                    <span class="etiq">
                        N° téléphone <font color=red>*</font><br>
                    </span>
                    <input type="text" name="phone" id="phone" class="champtext" placeholder="Votre numéro de téléphone" required><br><br>
                    <span class="etiq">
                        Message <font color=red>*</font><br>
                    </span>
                    <textarea class="champarea" name="message" id="message" placeholder="Votre message" required></textarea>
                    <div class="pied">
                        <input class="bouton" type="submit" name="envoi" id="envoi" value="Envoyer">
                        <input class="bouton" type="reset" name="annul" id="annul" value="Annuler">
                    </div>
     
                </form>
            </div>
     
        </div>
    </body>
    </html>
    Le .css est toujours le même.

    Je reviendrai ici poster le code complet lorsque tout sera fonctionnel (si ça marche..) ou poser d'autres questions (plus vraisemblable...)

    Fifi

Discussions similaires

  1. [org.xml.sax.ErrorHandler] Empecher les messages automatiques
    Par Emplyst dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 25/07/2006, 21h03
  2. Réponses: 3
    Dernier message: 17/07/2006, 09h45
  3. Réponses: 13
    Dernier message: 03/07/2006, 12h16
  4. Une boîte de messages en PHP ?
    Par TheRedLed dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/05/2006, 15h10
  5. [Sessions] Message erreur PHP création de session
    Par Ylias dans le forum Langage
    Réponses: 2
    Dernier message: 29/09/2005, 11h11

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