Probleme de variable non definies
Résoluflexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je viens de réaliser une mise à jour sur mon serveur, passant de PHP version 7.4 à PHP 8. Auparavant, je ne rencontrais aucun souci, mais suite à cette mise à jour, j'ai dû gérer plusieurs erreurs. Cependant, je bloque actuellement sur mon bon de commande qui semble rencontrer des variables non définies.
Voici comment est constitué mon code :
Vu la taille du code, il m'est impossible de le poster dans son intégralité. Cependant, voici comment il fonctionne : il se divise en trois parties.
La première partie est "panier.php", contenant le code principal.
La deuxième partie est l'envoi par e-mail, géré par "mail.php".
La troisième partie est "panier.js", qui gère le JavaScript.
Le problème semble se situer dans le fichier "mail.php". J'en suis convaincu car dans mon fichier principal "panier.php", je ne rencontre aucune erreur PHP.
Comment pourrais-je faire pour afficher les erreurs rencontrées dans "mail.php" ?
Voici la partie de mon code qui gère l'envoi des données vers "mail.php" :
<script src="panier.js"></script> <!-- pour envoyer les infos vers mail.php --> <script> function commander( nom, prenom, adresse, cp, email, adressepoint, cppoint, villepoint, commande, prix_total, remise, nouveau_prix, prix_depart, total_qte_bas, message, promotioncases, ancien_prix_livraison_incluse, ville, pays, detail_livraison, code_promo, coefficient_promo, nouveau_prix_sans_livraison, ancien_prix_livraison_incluse_azerty, nameazerty, myImg, cb_Nom, cb_Adresse, cb_CP, cb_VILLE, cb_PAYS ) { $.ajax({ url: "mail.php", type: "POST", data: "nom=" + nom + "&prenom=" + prenom + "&adresse=" + adresse + "&cp=" + cp + "&email=" + email + "&adressepoint=" + adressepoint + "&cppoint=" + cppoint + "&villepoint=" + villepoint + "&commande=" + commande + "&prix_total=" + prix_total + "&remise=" + remise + "&nouveau_prix=" + nouveau_prix + "&prix_depart=" + prix_depart + "&total_qte_bas=" + total_qte_bas + "&message=" + message + "&promotioncases=" + promotioncases + "&ancien_prix_livraison_incluse=" + ancien_prix_livraison_incluse + "&ville=" + ville + "&pays=" + pays + "&detail_livraison=" + detail_livraison + "&code_promo=" + code_promo + "&coefficient_promo=" + coefficient_promo + "&nouveau_prix_sans_livraison=" + nouveau_prix_sans_livraison + "&ancien_prix_livraison_incluse_azerty=" + ancien_prix_livraison_incluse_azerty + "&nameazerty=" + nameazerty + "&myImg=" + myImg + "&cb_Nom=" + cb_Nom + "&cb_Adresse=" + cb_Adresse + "&cb_CP=" + cb_CP + "&cb_VILLE=" + cb_VILLE + "&cb_PAYS=" + cb_PAYS, dataType: "html", success: function (reponse) { if (reponse == "1") { //MonPanier.clearpanier(); afficherpanier(); document.body.scrollTop = 0; document.documentElement.scrollTop = 0; $("#mymodal").modal("show"); } if (reponse == "0-1") { $("#mymodal_erreur_1").modal("show"); } if (reponse == "0") { $("#mymodal_erreur").modal("show"); } }, }); } $("#commander").click(function () { var nom = document.getElementById("nom").value; var prenom = document.getElementById("prenom").value; var adresse = document.getElementById("adresse").value; var cp = document.getElementById("cp").value; var ville = document.getElementById("ville").value; var pays = document.getElementById("pays").value; var email = document.getElementById("email").value; var adressepoint = document.getElementById("adressepoint").value; var cppoint = document.getElementById("cppoint").value; var villepoint = document.getElementById("villepoint").value; var commande = JSON.stringify(panier); var detail_livraison = document.getElementById("livraison-detail").innerHTML; var code_promo = document.getElementById("code_promo").innerHTML; var coefficient_promo = document.getElementById("coefficient_promo").innerHTML; var nouveau_prix_sans_livraison = document.getElementById("nouveau_prix_sans_livraison").innerHTML; var ancien_prix_livraison_incluse_azerty = document.getElementById("ancien_prix_livraison_incluse_azerty").innerHTML; var nameazerty = document.getElementById("nameazerty").innerHTML; var myImg = document.getElementById("myImg").innerHTML; var prix_total = document.getElementById("prix_total").innerHTML; var remise = document.getElementById("remise").innerHTML; var nouveau_prix = document.getElementById("nouveau_prix").innerHTML; var prix_depart = document.getElementById("prix_depart").innerHTML; var total_qte_bas = document.getElementById("total_qte_bas").innerHTML; var message = encodeURIComponent(document.getElementById("message").value); var promotioncases = document.querySelector("input[name=promotioncases]:checked").value; var ancien_prix_livraison_incluse = document.getElementById("ancien_prix_livraison_incluse").innerHTML; var cb_Nom = document.getElementById("cb_Nom").value; var cb_Adresse = document.getElementById("cb_Adresse").value; var cb_CP = document.getElementById("cb_CP").value; var cb_VILLE = document.getElementById("cb_VILLE").value; var cb_PAYS = document.getElementById("cb_PAYS").value; //console.log(promotioncases); //console.log(commande); commander( nom, prenom, adresse, cp, email, adressepoint, cppoint, villepoint, commande, prix_total, remise, nouveau_prix, prix_depart, total_qte_bas, message, promotioncases, ancien_prix_livraison_incluse, ville, pays, detail_livraison, code_promo, coefficient_promo, nouveau_prix_sans_livraison, ancien_prix_livraison_incluse_azerty, nameazerty, myImg, cb_Nom, cb_Adresse, cb_CP, cb_VILLE, cb_PAYS ); }); </script>
- Variable objet ou variable de bloc with non définie
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Bloc-notes (windows) - Télécharger - Traitement de texte
- Variable d'environnement temp - Forum Word
- Vba range avec variable ✓ - Forum VB / VBA
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
3 réponses
Voilà, je viens de vérifier avec le débogage de l'Ajax et les données sont bien transmises à l'autre page, à savoir mail.php.
J'ai donc réalisé une autre expérience : j'ai copié-collé le contenu de mail.php dans mon code panier.php. Enfin, j'ai pu voir les erreurs.
J'ai corrigé les erreurs au niveau du PHP, donc plus aucune erreur.
Cependant, l'envoi du mail ne fonctionne toujours pas.
pourtant l'onglet requete posséde bien les données
Sans voir le code php concerné ....... impossible de te répondre.
Il faudrait également nous dire où tu héberges ton site .. certains hébergeurs bloquants ou limitant les envois de mails
Voir le code, cela est impossible, il fait des centaines de lignes. Cependant, dans mail.php, j'ai aussi un enregistrement dans la base de données qui fonctionne.
Donc, je pense que ma façon d'envoyer les e-mails ne fonctionne tout simplement plus avec PHP 8. Ce qui est bizarre, c'est que je devrais recevoir des messages d'erreur.
Pourtant, je vois l'echo s'afficher à 10000, ce qui indique que le mail est bien envoyé. Bien évidemment, j'ai essayé plusieurs adresses e-mail mais sans succès
je suis chez hostinger
je viens d'essayer de cette facon mais c'est pareil
et pour rappel avec php7.3 cela fonctionne
Merci pour la reponse en fait je pense que cela vient de mon hebergeur
car meme le plus simple des codes dans un fichier php pour un envois de mail ne fonctionne pas
je dois donc tenter autre chose je pense comme phpmailer sauf erreurde ma part
je viens d'essayer de m'envoyer un message voici la reponse
Échec de la remise pour ces destinataires ou groupes :
phil@pecheperle.be (phil@pecheperle.be)
Votre message n’a pas été remis car le fournisseur de courrier du destinataire l’a rejeté.
Bonjour,
Je reviens vers vous car apparemment mes e-mails fonctionnent à présent.
Voici les vérifications et tests que je viens d'effectuer ainsi que mes constatations.
Je possède un bon de commande avec un fichier mail.php.
Dans ce fichier mail.php, j'ai plusieurs parties :
Sous PHP 7.3, tout fonctionne correctement. En revanche, sous PHP 8, l'enregistrement en base de données fonctionne, mais l'envoi par e-mail ne fonctionne pas.
Je poste donc uniquement mon fichier mail.php que j'ai réduit à sa plus simple expression possible afin de déterminer où cela peut bien bloquer.