Probleme compatibilité php 7.3

Résolu/Fermé
mathieu_n Messages postés 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 - 28 avril 2020 à 00:41
mathieu_n Messages postés 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 - 28 avril 2020 à 14:54
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 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
28 avril 2020 à 08:34
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 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
28 avril 2020 à 11:18
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 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 14
28 avril 2020 à 11:36
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 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 Ambassadeur 1 557
28 avril 2020 à 08:23
bonjour, pourquoi penses-tu que ton code n'est pas compatible?
0
yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 1 557
28 avril 2020 à 08:25
il suffit peut-être de remplacer $HTTP_POST_VARS par $_POST.
0
mathieu_n Messages postés 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 14
28 avril 2020 à 11:07
bonjour, quand je fais le test, je ne reçois aucun message
0
mathieu_n Messages postés 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 14
28 avril 2020 à 12:02
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 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 14
Modifié le 28 avril 2020 à 12:28
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 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719 > mathieu_n Messages postés 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024
28 avril 2020 à 12:36
Il nous faudrait le message d'erreur exact ainsi que le code que tu as modifié
0
mathieu_n Messages postés 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 14
28 avril 2020 à 12:45
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 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
28 avril 2020 à 12:55
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 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 14
28 avril 2020 à 14:37
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 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
28 avril 2020 à 14:41
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 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 14 > jordane45 Messages postés 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024
28 avril 2020 à 14:54
Merci pour ta réactivité et ton aide!!!!
C'est vraiment super sympa

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