Probleme compatibilité php 7.3

Résolu
mathieu_n Messages postés 67 Statut Membre -  
mathieu_n Messages postés 67 Statut Membre -
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


<?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
A voir également:

5 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 756
 
Bonjour,

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 par
   foreach($HTTP_POST_VARS as $key=>$val){
        $message .= "$key : $val\n";
    }

1
jordane45 Messages postés 40050 Statut Modérateur 4 756
 
Au 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
0
mathieu_n Messages postés 67 Statut Membre 14
 
Bonjour,
Merci beaucoup pour votre répondre extrêmement claire et précise ;-)

Je fais les modifications tout de suite...
0
yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonjour, pourquoi penses-tu que ton code n'est pas compatible?
0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
il suffit peut-être de remplacer $HTTP_POST_VARS par $_POST.
0
mathieu_n Messages postés 67 Statut Membre 14
 
bonjour, quand je fais le test, je ne reçois aucun message
0
mathieu_n Messages postés 67 Statut Membre 14
 
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...
0
mathieu_n Messages postés 67 Statut Membre 14
 
Bon finalement, ca ne marche plus avec php 7.3

lorsque j'essaie d'envoyer mon formulaire de contact, il me retourne un message d'erreur.



error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); Probl�me d'envoi du mail
0
jordane45 Messages postés 40050 Statut Modérateur 4 756 > mathieu_n Messages postés 67 Statut Membre
 
Il nous faudrait le message d'erreur exact ainsi que le code que tu as modifié
0
mathieu_n Messages postés 67 Statut Membre 14
 
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";
}


?>
0
jordane45 Messages postés 40050 Statut Modérateur 4 756
 
Ta balise d'ouverture de code PHP ne se situe pas au début de ton fichier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mathieu_n Messages postés 67 Statut Membre 14
 
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
0
jordane45 Messages postés 40050 Statut Modérateur 4 756
 
Oui,
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
0
mathieu_n Messages postés 67 Statut Membre 14 > jordane45 Messages postés 40050 Statut Modérateur
 
Merci pour ta réactivité et ton aide!!!!
C'est vraiment super sympa

Tout fonctionne parfaitement... Merci beaucoup ;-)
0