Le script ci-dessous fonctionne parfaitement en PHP 5.3, mais ne fonctionne plus en PHP 7.0 ...
<?php
// Formulaire de contact du site Lengrau Internet// http://www.nkiefer.jed.st//// Copyright (C) Kiefer 2014// Tous droits réservés// MEMORISER LES CHAMPS DU FORMULAIRE DANS DES VARIABLES// PREVENTION CONTRE VULNERABILITE XSS (CROSS-SITE SCRIPTING)
$trans = array("&"=>"et");
$nom = strip_tags(strtr($HTTP_POST_VARS['nom'], $trans));
$mail_exp = strip_tags(strtr($HTTP_POST_VARS['email'], $trans));
$sujet = strip_tags(strtr($HTTP_POST_VARS['sujet'], $trans));
$message = strip_tags(strtr($HTTP_POST_VARS['message'], $trans));
$secure_hp = strip_tags(strtr($HTTP_POST_VARS['contact_validation_id1'], $trans));// ENCODER TEXTE EN UTF-8
$nom = utf8_decode($nom);
$sujet = utf8_decode($sujet);
$message = utf8_decode($message);// MEMORISER L'IP DE L'EXPEDITEUR DU MESSAGE
$ip = $_SERVER['REMOTE_ADDR'];// COUPE LES LIGNES DE PLUS DE 70 CARACTERES DANS LE MESSAGE
$message = wordwrap($message,70,"\r\n");// HEADER MAIL WEBMASTER
$headers ="MIME-Version: 1.0\r\n";
$headers ="Content-type: text/plain; charset=utf-8"."\r\n";
$headers ="From: $nom <$mail_exp>\r\nReply-to : $nom <$mail_exp>\nX-Mailer:PHP";// HEADER MAIL EXPEDITEUR
$headers_exp ="MIME-Version: 1.0\r\n";
$headers_exp ="Content-type: text/plain; charset=utf-8"."\r\n";
$headers_exp ="From: $nom <$mail_exp>\r\nReply-to : $nom <$mail_exp>\nX-Mailer:PHP";// PARAMETRES DU MESSAGE WEBMASTER
$subject ="[LENGRAU INTERNET] ".utf8_encode($sujet);
$mail_web ="xxx@nkiefer.jed.st";
$body ="Message envoyé depuis le formulaire de contact de Lengrau Internet."."\r\n\r\n"."-----"."\r\n\r\n"."* Nom .......... : ".utf8_encode($nom)."\r\n"."* Sujet ........ : ".utf8_encode($sujet)."\r\n"."* Email ........ : $mail_exp"."\r\n"."* Adresse IP ... : $ip"."\r\n\r\n"."-----"."\r\n\r\n".utf8_encode($message);// PARAMETRES DU MESSAGE EXPEDITEUR
$subject_exp ="[LENGRAU INTERNET] Confirmation d'envoi de votre message : ".utf8_encode($sujet);
$body_exp ="Confirmation d'envoi de votre message (".utf8_encode($sujet).") envoyé depuis le formulaire de contact du site Lengrau Internet (www.nkiefer.jed.st)."."\r\n\r\n"."-----"."\r\n\r\n".utf8_encode($message)."\r\n\r\n"."-----"."\r\n\r\n"."Votre adresse IP ($ip) a été transmise au webmaster de Lengrau Internet.";// DEBUT CONDITION CHAMPS VIDESif(!empty($_POST['nom'])&&!empty($_POST['email'])&&!empty($_POST['sujet'])&&!empty($_POST['message'])){
$adresse = htmlentities($_POST['$mail_exp']);// DEBUT CONDITION EMAIL INVALIDEif(VerifierAdresseMail($mail_exp)){// DEBUT CONDITION ANTIBOTif(empty($_POST['contact_validation_id1'])&& isset($_POST['contact_validation_id2'])){// DEBUT CONDITION ENVOIif(mail($mail_web,$subject,utf8_decode($body),$headers)&& mail($mail_exp,$subject_exp,utf8_decode($body_exp),$headers_exp)){
header("location:../contact.html?mail=1");// Réussite de l'envoi}else{
header("location:../contact.html?mail=-1");// Echec de l'envoi}// FIN CONDITION ENVOI}else{
header("location:../contact.html?mail=-8");// Erreur si robot}// FIN CONDITION ANTIBOT}else{
header("location:../contact.html?mail=-4");// Erreur si email invalide}// FIN CONDITION EMAIL INVALIDE}else{
header("location:../contact.html?mail=-2");// Erreur si champs vides}// FIN CONDITION CHAMPS VIDES// VERIFICATION DE LA SYNTAXE DE L'EMAILfunctionVerifierAdresseMail($email){
$syntaxe ="#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#";if(preg_match($syntaxe,$email))returntrue;elsereturnfalse;}?>
Je me retrouve avec une erreur "Erreur si email invalide" ou avec l'erreur "Echec de l'envoi".
C'est un script que j'ai écrit moi-même, mais là je ne vois pas ce qui cloche avec cette version de PHP. A priori les fonctions utilisées sont toujours d'actualité en PHP 7.0.
Quelqu'un a un petite idée du pourquoi du comment ?
Question
nkiefer
Bonjour,
Le script ci-dessous fonctionne parfaitement en PHP 5.3, mais ne fonctionne plus en PHP 7.0 ...
Je me retrouve avec une erreur "Erreur si email invalide" ou avec l'erreur "Echec de l'envoi".
C'est un script que j'ai écrit moi-même, mais là je ne vois pas ce qui cloche avec cette version de PHP. A priori les fonctions utilisées sont toujours d'actualité en PHP 7.0.
Quelqu'un a un petite idée du pourquoi du comment ?
Je vous remercie.
Cordialement.
Bon dimanche.
Nicolas
Lien vers le commentaire
Partager sur d’autres sites
2 réponses à cette question
Recommended Posts
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant