Jump to content
laurence1201

formulaire de contact vers mon adresse mail

Recommended Posts

Bonjour
Je suis novice
J'ai créé mon site internet.
Je l'ai mis en ligne avec filezilla tout va bien.

Mon formulaire de contact est donc contact.html où j'ai créé mon formulaire 
et j'y ai mis la ligne <form action="traitement.php" method="post">

et j'ai créé une page traitement.php où j'ai mis la ligne
$destinataire = moi@gmail.com' afin de recevoir les données par mail.

Mon formulaire n'est pas envoyé.
Quelqu'un pour vérifier mon codage?

Share this post


Link to post
Share on other sites

Bonjour! Malheureusement sans le code il sera difficile de le vérifier ;)

avez-vous vérifié que votre hébergeur autorise l'utilisation de la fonction mail() en php? C'est assez commun d'avoir cela désactivé chez les hébergeurs.

 

Avec un bout de code je pourrais vous en dire plus!

 

Excellente journée!

Aenoa

Share this post


Link to post
Share on other sites

merci donc mon traitement.php

pour les essais je suis chez lescigales.org

<?php

$destinataire = 'moi@gmail.com';

$copie = 'non'; 

$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

if (!isset($_POST['envoi']))
{
    
    echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
    
    function Rec($text)
    {
        $text = htmlspecialchars(trim($text), ENT_QUOTES);
        if (1 === get_magic_quotes_gpc())
        {
            $text = stripslashes($text);
        }
 
        $text = nl2br($text);
        return $text;
    };
 
    
    function IsEmail($email)
    {
        $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
        return (($value === 0) || ($value === false)) ? false : true;
    }

    $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
    $prenom   = (isset($_POST['prenom']))   ? Rec($_POST['prenom'])   : '';
    $telephone   = (isset($_POST['telephone']))   ? Rec($_POST['telephone'])   : '';
    $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
    $motif   = (isset($_POST['motif']))   ? Rec($_POST['motif'])   : '';
    $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
    
    $email = (IsEmail($email)) ? $email : ''; 
 
    if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
    {
        
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
                'Reply-To:'.$email. "\r\n" .
                'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
                'Content-Disposition: inline'. "\r\n" .
                'Content-Transfer-Encoding: 7bit'." \r\n" .
                'X-Mailer:PHP/'.phpversion();
 
        
        if ($copie == 'oui')
        {
            $cible = $destinataire.';'.$email;
        }
        else
        {
            $cible = $destinataire;
        };
 
        
        $caracteres_speciaux     = array(''', '', '"', '<br>', '<br />', '<', '>', '&', '…',   '’', '‘');
        $caracteres_remplacement = array("'",      "'",        '"',      '',    '',       '<',    '>',    '&',     '...', '>>',      '<<'     );
 
        $objet = html_entity_decode($objet);
        $objet = str_replace($caracteres_speciaux, $caracteres_remplacement, $objet);
 
        $message = html_entity_decode($message);
        $message = str_replace($caracteres_speciaux, $caracteres_remplacement, $message);
 
    
        $num_emails = 0;
        $tmp = explode(';', $cible);
        foreach($tmp as $email_destinataire)
        {
            if (mail($email_destinataire, $objet, $message, $headers))
                $num_emails++;
        }
 
        if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
        {
            echo '<p>'.$message_envoye.'</p>';
        }
        else
        {
            echo '<p>'.$message_non_envoye.'</p>';
        };
    }
    else
    {
        
        echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
    };
};(!isset($_POST['envoi']))
?>

 

Share this post


Link to post
Share on other sites

Mon fichier formulaire

<form action="traitement.php" method="post">
<p>
<strong>Nom<span style="color: #ff0000;">*</span> :</strong> <label for="nom"> </label> <input id="nom" name="nom" size="28" type="text" /> <br>
<strong>Prénom :</strong> <label for="prenom"></label> <input id="prenom" name="prenom" size="27" type="text" /> <br /> 

<strong>Téléphone<span style="color: #ff0000;">*</span> :<label for="telephone"></label></strong> <input id="telephone" name="telephone" size="27" type="text" /> <br>
 
<strong>Mail <span style="color: #ff0000;">*</span> : </strong><br /> <label for="email"> </label><input id="email" name="email" size="81" type="text" /></p>
<p>Pour quelle raison nous contactez-vous ?</p>
<label for="motif"></label> <select id="motif" name="motif"> <option value="reglement">Pour un renseignement</option> 
<option value="suggestion">Pour une suggestion</option>
<option value="remarque">Pour une remarque</option> 
<option value="recouvrement">Pour autre chose</option> 
 </select><br>
<p>Message <span style="color: #ff0000;">*</span> :</p>
<p><label for="message"></label> <textarea id="message" cols="52" rows="7" name="message"></textarea></p>
<input type="reset" value="Effacer" /> <input type="submit" value="Envoyer" />

 

Share this post


Link to post
Share on other sites

Pour info, la fonction suivante est déclarée comme obsolète depuis php 7.4 et retourne toujours "false" depuis php 5.4.0

get_magic_quotes_gpc()

De plus, je ne vois aucune variable $_POST['envoi'] ni $_POST['objet']

L'absence de $_POST['envoi'] fait que la boucle principale n'est pas atteinte  et l'absence de $_POST['objet']oblige à changer ce qui suit

J'ai remplacé la ligne motif de ton formulaire par

<label for="objet"></label> <select id="objet" name="objet">

 

J'ai aussi modifié les lignes suivantes :

        $caracteres_speciaux     = array("'", "’", '"', '<br>', '<br />', '<', '>', '&', '…',   '’', "‘");
        $caracteres_remplacement = array("'",      "'",        '"',      '',    '',       '<',    '>',    '&',     '...

et remplacé le

if (!isset($_POST['envoi']))

par

if (!isset($_POST['message']))

Pour info, tu ne reçois que le message envoyé, pas le nom ni l'email de l'émetteur.

Il faudra compléter la ligne mail(...) ou changer le contenu de $message, par exemple :

        $message = "NOM : ".$nom."\nPRENOM : ".$prenom."\nTELEPHONE :".$telephone."\nEMAIL : ".$email."\nMESSAGE :".$message;

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...