Eléphanteau du PHP |
12 Messages
08 déc. 2020, 16:16
Bonjour,
Je viens donc de réessayer.
Lorsque je clique sur "envoyer", je suis redirigé vers une page blanche intitulée: "/formcontact.php?nom=test&mail=test&numtel=test&sujet=test"
et je ne reçois aucun mail. Et ce, que le fichier soit en .php ou en .html.
Voici mes codes, peut-être aurez-vous plus facile pour m'aider...
index.html
<div class="container">
<form action="formcontact.php" method="post">
<label for="nom">Nom</label>
<input type="text" id="nom" name="nom" placeholder="Ecrivez votre nom">
<label for="mail">Email</label>
<input type="text" id="mail" name="mail" placeholder="Ecrivez votre email">
<label for="sujet">Sujet</label>
<textarea id="sujet" name="sujet" placeholder="Ecrivez votre message" style="height:200px"></textarea>
<input type="submit" value="Envoyer">
</form>
</div>
formcontact.php
<?php
$VotreAdresseMail="";//mettez ici votre adresse mail
if(isset($_POST['envoyer'])) { // si le bouton "Envoyer" est appuyé
//on vérifie que le champ mail est correctement rempli
if(empty($_POST['mail'])) {
echo "Le champ mail est vide";
} else {
//on vérifie que l'adresse est correcte
if(!preg_match("#^[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?@[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?\.[a-z]{2,}$#i",$_POST['mail'])){
echo "L'adresse mail entrée est incorrecte";
}else{
//on vérifie que le champ sujet est correctement rempli
if(empty($_POST['sujet'])) {
echo "Le champ sujet est vide";
}else{
//on vérifie que le champ message n'est pas vide
if(empty($_POST['message'])) {
echo "Le champ message est vide";
}else{
//tout est correctement renseigné, on envoi le mail
//on renseigne les entêtes de la fonction mail de PHP
$Entetes = "MIME-Version: 1.0\r\n";
$Entetes .= "Content-type: text/html; charset=UTF-8\r\n";
$Entetes .= "From: <".$_POST['mail'].">\r\n";//de préférence une adresse avec le même domaine de là où, vous utilisez ce code, cela permet un envoie quasi certain jusqu'au destinataire
$Entetes .= "Reply-To: <".$_POST['mail'].">\r\n";
//on prépare les champs:
$Mail=$_POST['mail'];
$Sujet='=?UTF-8?B?'.base64_encode($_POST['sujet']).'?=';//Cet encodage (base64_encode) est fait pour permettre aux informations binaires d'être manipulées par les systèmes qui ne gèrent pas correctement les 8 bits (=?UTF-8?B? est une norme afin de transmettre correctement les caractères de la chaine)
$Message=htmlentities($_POST['message'],ENT_QUOTES,"UTF-8");//htmlentities() converti tous les accents en entités HTML, ENT_QUOTES Convertit en + les guillemets doubles et les guillemets simples, en entités HTML
//en fin, on envoi le mail
if(mail($VotreAdresseMail,$Sujet,nl2br($Message),$Entetes)){//la fonction nl2br permet de conserver les sauts de ligne et la fonction base64_encode de conserver les accents dans le titre
echo "Le mail à été envoyé avec succès!";
} else {
echo "Une erreur est survenue, le mail n'a pas été envoyé";
}
}
}
}
}
}
?>
Modifié en dernier par
Dobby le 08 déc. 2020, 21:30, modifié 5 fois.