par two3d » 25 mars 2021, 21:25
par RealJesus » 25 mars 2021, 19:50
Pas trop sec ? si tu as besoin d'aide n'hésites pas!
par RealJesus » 25 mars 2021, 19:37
Pas trop sec ?
si tu as besoin d'aide n'hésites pas!
par two3d » 25 mars 2021, 18:48
par RealJesus » 25 mars 2021, 18:42
J'ai déjà donné l'idée, changer de code, il est vraiment pas top (c'est d'un foutage de gueule royale ce bout de code) avec des variables qui ne servent à rien, ça fait que rallonger le code et on y comprend rien. Ya aussi des vérifications qui sont pas géniales comme $previsualiser= htmlentities($_POST['previsualiser']); Si $_POST['previsualiser'] n'existe pas, yaura une erreur et d'autre qui ne servent à rien comme if(!$DomaineMailExiste) Et aussi: $message=str_replace('&', 'et',$message); //qui ne sert à rien car passage au htmlentities() de $message Autre chose, si la personne rentre des caractères pour le Subject:'.$objet." (ou le code qui convertit caractères) qui ne sont pas compatible avec la rfc2047 tu laura dans l'os et le mail pourra: soit ne pas te parvenir, soit atterrir en spam, le mieux est de mettre le sujet prédéfinit: par exemple: "Vous avez reçu un nouveau mail" 'Sent:'.date('l, F d, Y H:i');//sert à rien echo '<p>Tous les champs sont vides.</p>'; $message='';$votremail='';$objet='';$apercu_resultat=''; //si ils sont vides ça sert à rien de les redéfinir en vide... echo $_SERVER['PHP_SELF']; //peut être une faille de sécurité, mettre directement le fichier utilisé, par exemple "contact.php" https://www.j0k3r.net/un-exemple-basiqu ... sur-server Bref! ce code est à refaire ou à remplacer par un autre et c'est pas ce qui manque sur internet.
$previsualiser= htmlentities($_POST['previsualiser']);
$message=str_replace('&', 'et',$message); //qui ne sert à rien car passage au htmlentities() de $message
'Sent:'.date('l, F d, Y H:i');//sert à rien
echo '<p>Tous les champs sont vides.</p>'; $message='';$votremail='';$objet='';$apercu_resultat=''; //si ils sont vides ça sert à rien de les redéfinir en vide...
echo $_SERVER['PHP_SELF']; //peut être une faille de sécurité, mettre directement le fichier utilisé, par exemple "contact.php"
par two3d » 25 mars 2021, 18:12
par RealJesus » 25 mars 2021, 17:35
1 /comment éviter que Le mail que je reçois, arrive forcément dans les spams, avec marqué : Traitez ce message avec prudence Gmail n'a pas pu vérifier que ce message provient bien de [email protected]. Évitez de cliquer sur des liens ou de télécharger des pièces jointes que ce message pourrait contenir, ou de communiquer des informations personnelles en y répondant. Signaler comme hameçonnage
par RealJesus » 25 mars 2021, 16:55
Tu rajoute une condition: if(isset(post previsualiser)) //alors tu affiche la prévisualisation else // tu envoi le message Penses à réafficher les champs du formulaire quand tu fait une prévisualisation car il seront vidés automatiquement
if(isset(post previsualiser)) //alors tu affiche la prévisualisation else // tu envoi le message
//Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi else { $domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail); $DomaineMailExiste=checkdnsrr($domaine,'MX'); if(!$DomaineMailExiste) echo'<p>Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.</p>'; elseif(!empty($previsualiser)) { $apercu_resultat='<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés. <br>Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer".<br>Prévisualisation :</p>'; $Previsualiser=''; } elseif(!empty($envoi)) { $objet='[envoyé depuis mon site web] : '.$objet; $headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/plain;charset=iso-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i'); if(mail($destinataire,$objet,$message,$headers)) { echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>'; $Envoi=''; $Previsualiser=''; } else echo'<p>Un problème est survenu durant l\'envoi du mail.</p>'; } else echo'<p>Une condition innatendue est survenue lors de l\'exécution du script.</p>'; } echo $apercu_resultat; }
par two3d » 25 mars 2021, 16:01
par RealJesus » 25 mars 2021, 15:43
Utiliser un mail() en utf8 et faire en sorte que le sujet du message soit aussi correct.
Tu assignes des boutons à $Previsualiser et $Envoi, les boutons en questions, que tu réaffiche en bas du form avec $bas_formulaire, supprime carrément <?php echo $bas_formulaire;?> (vers la ligne 664) et suppriome aussi enctype="multipart/form-data" (dans la balise <form ... enctype="multipart/form-data">) qui ne te servira pas pour ton utilisation.
<?php if (isset($_POST['message'])) { // La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne $verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; //quelques remplacements pour les specialchars $message=preg_replace('#(<|>)#', '-', $_POST['message']); $message=str_replace('"', "'",$message); $message=str_replace('&', 'et',$message); $objet=preg_replace('#(<|>)#', '-', $_POST['objet']); $objet=str_replace('"', "'",$objet); $objet=str_replace('&', 'et',$objet); // On assigne et/ou protège nos variables $votremail=stripslashes(htmlentities($_POST['votremail'])); $message=stripslashes(htmlspecialchars($message)); $objet=stripslashes(htmlspecialchars($objet)); //input envoi/previsualiser $envoi=htmlentities($_POST['envoi']); $previsualiser=htmlentities($_POST['previsualiser']); //on enlève les espaces $votremail=trim($votremail); $message=trim($message); $objet=trim($objet); $apercu_resultat='<p>Aperçu du résultat :</p>'; /*On vérifie si l'e mail et le message sont pleins, et on agit en fonction. (on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/ //Si ca ne vas pas (mal rempli, mail non valide...) if((empty($message))or(empty($objet))or(!preg_match($verif,$votremail))) { //les 3 champs sont vides if(empty($votremail)and(empty($message))and(empty($objet))) { echo '<p>Tous les champs sont vides.</p>'; $message='';$votremail='';$objet='';$apercu_resultat=''; } //un des champs est vide else { if(!preg_match($verif,$votremail)) echo'<p>Votre adresse e-mail n\'est pas valide.</p>'; else { echo'<p>Il faut remplir tous les champs !</p>'; if(empty($message)) $apercu_resultat=''; } } } //Si les deux sont pleins et que l'adresse est valide, on envoie ou on prévisualise sans envoi else { $domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail); $DomaineMailExiste=checkdnsrr($domaine,'MX'); if(!$DomaineMailExiste) echo'<p>Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.</p>'; elseif(!empty($previsualiser)) { $apercu_resultat='<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés. <br>Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer".<br>Prévisualisation :</p>'; $Previsualiser=''; } elseif(!empty($envoi)) { $objet='[envoyé depuis mon site web] : '.$objet; $headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type: text/html; charset=UTF-8'."\r\n".'Sent:'.date('l, F d, Y H:i'); if(mail($destinataire,$objet,$message,$headers)) { echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>'; $Envoi=''; $Previsualiser=''; } else echo'<p>Un problème est survenu durant l\'envoi du mail.</p>'; } else echo'<p>Une condition innatendue est survenue lors de l\'exécution du script.</p>'; } echo $apercu_resultat; } else { echo '<p>Vous pouvez utiliser ce formulaire pour me contacter.</p>'; $votremail='';$message=''; } ?>
<form id="myForm" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> <div class="input-line"> <input id="name" type="text" placeholder="Name" class="input-name" name="Name" value="<?php echo( $from ); ?>" name="from" required> <input id="email" type="email" placeholder="Email" class="input-name" value="<?php echo $votremail; ?>" name="votremail" required> </div> <input type="text" id="subject" placeholder="subject" class="input-subject" value="<?php echo( $object ); ?>" name="objet" required> <textarea id ="body" class="input-textarea" placeholder="message" name="message" required><?php echo $message; ?></textarea> <button name="envoi" type="submit" id ="submit" tabindex="4" value="Envoyer">Envoyer</button> <button type="submit" name="previsualiser" tabindex="3" value="Prévisualiser">Prévisualiser</button> </form>
par two3d » 25 mars 2021, 14:33
1 /comment éviter que Le mail que je reçois, arrive forcément dans les spams, avec marqué :
2/ comment faire pour que l'envoie se fasse depuis le boutton de mon formulaire, et non depuis les boutons "prévisualiser" et "envoyer" du script php ?
par RealJesus » 25 mars 2021, 12:06
Ta aucun name sur tes input, tu ne peux pas les retrouver avec $_POST lors du traitement PHP sauf textarea qui a un name="message"
par two3d » 25 mars 2021, 11:43
par RealJesus » 25 mars 2021, 11:26
essaye en enlevant <script src="https://cdnjs.cloudflare.com/ajax/libs/ ... "></script>
par two3d » 24 mars 2021, 16:31