Probleme compatibilité php 7.3
Résolu
Bonsoir,
Je suis un peu perdu car mon site internet ne me permet plus de recevoir les messages via mon formulaire de contact.
Mon hébergeur ne prend plus en charge ma vieille version PHP 5.2 et me demande de migrer vers une version PHP 7.3
Il me semble qu'il n'y a que ce fichier qui utilise du PHP
Si quelqu'un pouvait avoir la gentillesse de me dire les modification à faire sur ce fichier afin qu'il soit compatible en php 7.3
Merci de votre contribution
Je suis un peu perdu car mon site internet ne me permet plus de recevoir les messages via mon formulaire de contact.
Mon hébergeur ne prend plus en charge ma vieille version PHP 5.2 et me demande de migrer vers une version PHP 7.3
Il me semble qu'il n'y a que ce fichier qui utilise du PHP
<?php
$TO = "mon_mail@monsite.fr";
//$email=$_POST['email'];
//$header= 'From:'.$email.'';
$headers = "From: ".$_POST['email'] ."";
//$headers .= "X-Mailer: PHP/" . phpversion();
$subject="www.monsite.fr";
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
//test si bien envoyé
if(mail($TO, $subject, $message, $h)){
Header("Location: merci.html");
}else{
echo "Problème d'envoi du mail";
}
?>
Si quelqu'un pouvait avoir la gentillesse de me dire les modification à faire sur ce fichier afin qu'il soit compatible en php 7.3
Merci de votre contribution
5 réponses
-
ModérateurBonjour,
La seule fonction qui ne fonctionnera plus c'est "each"
Avertissement
Cette fonction est OBSOLÈTE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.
https://www.php.net/manual/fr/function.each.php
donc,while (list($key, $val) = each($HTTP_POST_VARS)) { $message .= "$key : $val\n"; }
a remplacer parforeach($HTTP_POST_VARS as $key=>$val){ $message .= "$key : $val\n"; }
-
ModérateurAu passage, quelques conseils à appliquer dans l'écriture de ton code php ( plus particulièrement.. l'activation des erreurs php )
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code -
-
-
Contributeurbonjour, pourquoi penses-tu que ton code n'est pas compatible?
-
Je viens de faire le changement...
Je reçois bien le mail sur ma messagerie, par contre à la place de l'adresse mail de l'expéditeur, j'ai "CGI-Mailer"...
Je préfèrerais avoir l'adresse mail de l'expéditeur pour pouvoir répondre directement...-
-
Modérateur@mathieu_nIl nous faudrait le message d'erreur exact ainsi que le code que tu as modifié
-
-
Merci beaucoup pour ton aide...
voici le message d'erreur sur le site:
error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);
voici mon fichier formmail.php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
<?php
$TO = "contact@monsite.fr";
//$email=$_POST['email'];
//$header= 'From:'.$email.'';
$headers = "From: ".$_POST['email'] ."";
//$headers .= "X-Mailer: PHP/" . phpversion();
$subject="www.monsite.fr";
$message = "";
foreach($HTTP_POST_VARS as $key=>$val){
$message .= "$key : $val\n";
}
//test si bien envoyé
if(mail($TO, $subject, $message, $h)){
Header("Location: merci.html");
}else{
echo "Problème d'envoi du mail";
}
?> -
Désolé pour ces erreurs de débutant!!!
J'ai donc réalisé les modifs, voici les messages d'erreur:
Notice: Undefined variable: HTTP_POST_VARS in /homepages/28/d397070128/htdocs/formmail.php on line 24
Warning: Invalid argument supplied for foreach() in /homepages/28/d397070128/htdocs/formmail.php on line 24
Notice: Undefined variable: h in /homepages/28/d397070128/htdocs/formmail.php on line 29
Warning: mail(): headers parameter must be string or array in /homepages/28/d397070128/htdocs/formmail.php on line 29
Probl�me d'envoi du mail-
ModérateurOui,
Comme te l'avais indiqué Yg_be, HTTP_POST_VARS est également obsolète et il faut le remplacer par $_POST
https://www.php.net/manual/fr/reserved.variables.post.php
Tu as également fait une erreur sur le nom de ta variabe
ce n'est pas $h mais $headers -
@jordane45Merci pour ta réactivité et ton aide!!!!
C'est vraiment super sympa
Tout fonctionne parfaitement... Merci beaucoup ;-)
-