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
2 answers to this question
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now