Je ne reçois que le nom des variables avec php mailer

Résolu/Fermé
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 - 6 janv. 2022 à 15:21
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 - 7 janv. 2022 à 00:57
bonjour a tous

de nouveau encore moi pour cette fois un problème de mail

je me suis inspire de ce code pour l envois de mon bon de commande

<?php 
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

// Saisissez ici l'adresse mail du destinataire
$destinataire = "adresse@mail.com";

if (   (isset($_GET["nom"]) && ($_GET["nom"] != "")) 
&& (isset($_GET["prenom"]) && ($_GET["prenom"] != ""))
&& (isset($_GET["cp"]) && ($_GET["cp"] != ""))
&& (isset($_GET["ville"]) && ($_GET["ville"] != ""))
&& (isset($_GET["email"]) && ($_GET["email"] != ""))
&& (isset($_GET["commande"]) && ($_GET["commande"] != ""))
)
{
$nom = htmlspecialchars($_GET["nom"], ENT_QUOTES);
$prenom = htmlspecialchars($_GET["prenom"], ENT_QUOTES);
$cp = htmlspecialchars($_GET["cp"], ENT_QUOTES);
$ville = htmlspecialchars($_GET["ville"], ENT_QUOTES);
$email = htmlspecialchars($_GET["email"], ENT_QUOTES);
$message = nl2br(htmlspecialchars($_GET["message"], ENT_QUOTES));
$commande = $_GET["commande"];
$prix_total = htmlspecialchars($_GET["prix_total"], ENT_QUOTES);
$sujet = 'Commande reçue';
$messagez = "Nom: ".$nom."<br>
Prénom: ".$prenom."<br>
Code postal: ".$cp."<br>
Ville: ".$ville."<br>
Adresse e-Mail: ".$email."<br>
Message: ".$message."<br>
Liste des produits: <br><br><table>".$commande."</table><br>
Prix Total: ".$prix_total."";
$headers = "From: \"Commande\"<".$destinataire.">\n";
$headers .= "Reply-To: ".$destinataire."\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"";
if(mail($destinataire,$sujet,$messagez,$headers))
{
echo "1";
echo $message;
}
else
{
echo "0";
}
}
else echo "0";
?>


j'ai du pas mal chercher pour connaître la raison pour laquelle je ne recevais rien dans ma boite mail
pour trouver que si je retirais la variable messagez du mail que je recevais bien le mail

j'ai donc dans un premier temps modifier le code pour remplacer cette variable par la variable message
(je changerais plus tard la façon dont était utilise la variable message par commentaire dans le html )

quoi qu il en soit le code ci après fonctionne et je reçois bien le message dans ma boite hotmail

<?php 
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

// Saisissez ici l'adresse mail du destinataire
$destinataire= "perroquet666@hotmail.com";

if (   (isset($_GET["nom"]) && ($_GET["nom"] != "")) 
&& (isset($_GET["prenom"]) && ($_GET["prenom"] != ""))
&& (isset($_GET["cp"]) && ($_GET["cp"] != ""))
&& (isset($_GET["ville"]) && ($_GET["ville"] != ""))
&& (isset($_GET["email"]) && ($_GET["email"] != ""))
&& (isset($_GET["commande"]) && ($_GET["commande"] != ""))
//&& (isset($_GET["livraison"]) && ($_GET["livraison"] != ""))
)
{
$nom = htmlspecialchars($_GET["nom"], ENT_QUOTES);
$prenom = htmlspecialchars($_GET["prenom"], ENT_QUOTES);
$cp = htmlspecialchars($_GET["cp"], ENT_QUOTES);
$ville = htmlspecialchars($_GET["ville"], ENT_QUOTES);
$email = htmlspecialchars($_GET["email"], ENT_QUOTES);

//echo $email;
//$message = nl2br(htmlspecialchars($_GET["message"], ENT_QUOTES));
$commande = $_GET["commande"];
$prix_total = htmlspecialchars($_GET["prix_total"], ENT_QUOTES);
$subject = 'Commande reçue';
$message = 'Nom: ".$nom."<br>
Prénom: ".$prenom."<br>
Code postal: ".$cp."<br>
Ville: ".$ville."<br>
Adresse e-Mail: ".$email."<br>
Message: ".$message."<br>
Liste des produits: <br><br><table>".$commande."</table><br>
Prix Total: ".$prix_total."';
//$livraison = htmlspecialchars($_GET["livraison"], ENT_QUOTES);

$headers = "From: \"Commande\"<".$destinataire.">\n";
$headers .= "Reply-To: ".$destinataire."\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"";
if(mail($destinataire,$sujet,$message,$headers))
{
echo "1";
//echo $message;
}
else
{
echo "0";
}
}
else echo "0";
?>


sauf que je reçois les donnes de cette façon

Nom: ".$nom."
Prénom: ".$prenom."
Code postal: ".$cp."
Ville: ".$ville."
Adresse e-Mail: ".$email."
Message: ".$message."
Liste des produits:

".$commande."

Prix Total: ".$prix_total."

j'ai donc essayé de faire des échos des variables
mais alors le formulaire refuse de s'envoyer

16 réponses

jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
6 janv. 2022 à 15:29
Bonjour,

Pour commencer ... normal que tu reçoives le message ainsi vu que tu t'es mélangé les pinceaux lors de la concaténation de tes variables avec le "texte" du message...
Il suffit de regarder la couleur dans la variable ( entre le code du début et celui que tu as maintenant) pour se rendre compte d'un souci...

Ensuite ( il me semblait te l'avoir déjà dit...), il est préférable d'utiliser la méthode POST plutôt que le GET surtout lorsqu'on doit transmettre beaucoup de variables et/ou qu'il y a des longs textes dedans...

Je t'invite donc fortement à modifier ton formulaire (dont on ne voit pas le code ici...) en POST au lieu du GET.
puis, bien entendu, à récupérer les variables en $_POST au lieu du $_GET

Si tes soucis persistent ( tu peux remettre la variable $messagez comme avant )... fais nous un var_dump de ta variable $_POST ainsi qu'un var_dump de ta variable $messagez et montre nous ce que ça donne.

1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 16:14
Merci jordane pour les corrections
une fois ces dernières mises a jour
le formulaire ne s envois plus ...
j ai donc mis en place les var_dump
dans la boite de dialogue qui annonce que la commande est bien envoyée
je ne sais pas si cela est la meilleur place ?

voici donc le code du formulaire
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Comment créer un panier en JavaScript">
<meta name="author" content="1FORMATIK.com">
<title>Comment créer un panier en JavaScript</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
</head>
<body>
<div class="container bg-light rounded">
<div class="row">
<div class="col-md-12 mt-3">
<div class="row mt-3">
<div class="col-md-4">
</div>
<div class="container">
<div class="row">
<div class="col-sm">
<img src="https://phil.pecheperle.be/image-perles/perle-verre-peche-gardon-2002.JPG" style ="width: 150px;
height: 150px;" alt="canard"/>
</div>
</div>
<div class="row">
<div class="col-sm">
<p>Produit 01 (8.00 €)</p>
</div>
</div>
<div class="row">
<div class="col-sm">
<div class="col-md-4 text-end">
<a style="cursor:pointer;" data-nom="Produit 01" data-prix="8.00" data-select="01" data-checkbox="produit_001" class="btn btn-primary ajouter-panier">ajouter au panier</a>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-md-4">
<p>Produit 02 (15.00 €)</p>
</div>
<div class="col-md-2">
<select class="form-control" id="02">
<option value="XS">XS</option>
<option value="S">S</option>
<option value="M">M</option>
<option value="L">L</option>
<option value="XL">XL</option>
<option value="2XL">2XL</option>
<option value="3XL">3XL</option>
<option value="4XL">4XL</option>
</select>
</div>
<div class="col-md-6 text-end">
<a style="cursor:pointer;" data-nom="Produit 02" data-prix="15.00" data-select="02" class="btn btn-primary ajouter-panier">ajouter au panier</a>
</div>
</div>
<div class="row mt-4">
<div class="col-md-4">
<p>Produit 03 (12.00 €)</p>
</div>
<div class="col-md-8 text-end">
<a style="cursor:pointer;" data-nom="Produit 03" data-prix="12.00" class="btn btn-primary ajouter-panier">ajouter au panier</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 mt-3">
<h4>Votre commande</h4>
</div>
</div>
<div class="row">
<div class="col-md-12 mt-3">
Nombre de produit(s) dans le panier : <span class="total-count"></span>
<br /><br />
<table width="100%" class="show-panier" id="macommande"></table>
<br />
<br />
<p>Select un mode de livraison :</p>
<div>
<input type="radio" id="mondial_relay_belgique" name="envois" value="2" onclick="afficherpanier()">
<label for="mondial_relay_belgique">Envois par mondial relay belgique 5 euros</label>
</div>
<div>
<input type="radio" id="poste_belgique" name="envois" value="3" onclick="afficherpanier()">
<label for="poste_belgique">envois par poste belgique 4 euros</label>
</div>
<div>
<input type="radio" id="mondial_relay_france" name="envois" value="4" checked="checked" onclick="afficherpanier()">
<label for="mondial_relay_france">Envois par mondial relay france 3 euros</label>
</div>
<div>
<input type="radio" id="poste_france" name="envois" value="5" onclick="afficherpanier()">
<label for="poste_france">envois par poste france 2 euros</label>
</div>
<div>*Prix total: <b><span class="total-panier" id="prix_total">0.00</span> euros</b></div>
<br />
<i id="livraison-detail">*Livraison incluse</i>
<div class="text-end"><button class="clear-panier btn btn-danger">Vider le panier</button></div>
</div>
</div>
<div class="row">
<div class="col-md-12 mt-3">
<h4>Adresse de livraison</h4>
</div>
</div>
<div class="row">
<div class="col-md-12 mt-3">
<input class="form-control" type="text" name="nom" value="" id="nom" placeholder="Nom">
<br>
<input class="form-control" type="text" name="prenom" value="" id="prenom" placeholder="Prénom">
<br>
<input class="form-control" type="text" name="cp" value="" id="cp" placeholder="Code postal">
<br>
<input class="form-control" type="text" name="ville" value="" id="ville" placeholder="Ville">
<br>
<input class="form-control" type="text" name="email" value="" id="email" placeholder="e-Mail">
<br>
<textarea class="form-control" id="message" placeholder="Message Optionnel"></textarea>
<br>


<div class="text-end"><button type="button" class="btn btn-success" id="commander">Commander</button></div>
<br>
<div id="qte_minimum_report"></div>
</div>
</div>
<div class="modal" id="mymodal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Commande confirmée</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div id="commande_report">Merci de votre commande</div>
<?php
var_dump($_POST);
var_dump($messagez);

?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
</div>
</div>
</div>
</div>
<div class="modal" id="mymodal_erreur" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Erreur de commande</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div id="commande_report">Une erreur est survenue</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
</div>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
<script src="panier.js"></script>
<script>
function commander(nom,prenom,cp,email,commande,prix_total,message,ville){
$.ajax({
url : 'mail.php',
type : 'POST',
data : 'nom=' + nom + '&prenom=' + prenom + '&cp=' + cp + '&email=' + email + '&commande=' + commande + '&prix_total=' + prix_total + '&message=' + message + '&ville=' + ville,
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"){$('#mymodal_erreur').modal('show');}
}
});
}
$('#commander').click( function(){
var nom = document.getElementById("nom").value;
var prenom = document.getElementById("prenom").value;
var cp = document.getElementById("cp").value;
var ville = document.getElementById("ville").value;
var email = document.getElementById("email").value;
var commande = JSON.stringify(panier);
var prix_total = document.getElementById("prix_total").innerHTML;
var message = encodeURIComponent(document.getElementById("message").value);
commander(nom,prenom,cp,email,commande,prix_total,message,ville);
});
</script>
</body>
</html>


en plaçant les var_dump dans la boite de dialogue
cela ne retourne rien ...


et celui de l envois
<?php 
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

// Saisissez ici l'adresse mail du destinataire
$destinataire = "perroquet666@hotmail.com";

if (   (isset($_POST["nom"]) && ($_POST["nom"] != "")) 
&& (isset($_POST["prenom"]) && ($_POST["prenom"] != ""))
&& (isset($_POST["cp"]) && ($_POST["cp"] != ""))
&& (isset($_POST["ville"]) && ($_POST["ville"] != ""))
&& (isset($_POST["email"]) && ($_POST["email"] != ""))
&& (isset($_POST["commande"]) && ($_POST["commande"] != ""))
)
{
$nom = htmlspecialchars($_POST["nom"], ENT_QUOTES);
$prenom = htmlspecialchars($_POST["prenom"], ENT_QUOTES);
$cp = htmlspecialchars($_POST["cp"], ENT_QUOTES);
$ville = htmlspecialchars($_POST["ville"], ENT_QUOTES);
$email = htmlspecialchars($_POST["email"], ENT_QUOTES);
$message = nl2br(htmlspecialchars($_POST["message"], ENT_QUOTES));
$commande = $_POST["commande"];
$prix_total = htmlspecialchars($_POST["prix_total"], ENT_QUOTES);
$sujet = 'Commande reçue';
$messagez = "Nom: ".$nom."<br>

Prénom: ".$prenom."<br>
Code postal: ".$cp."<br>
Ville: ".$ville."<br>
Adresse e-Mail: ".$email."<br>
Message: ".$message."<br>
Liste des produits: <br><br><table>".$commande."</table><br>
Prix Total: ".$prix_total."";

$headers = "From: \"Commande\"<".$destinataire.">\n";
$headers .= "Reply-To: ".$destinataire."\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"";
if(mail($destinataire,$sujet,$messagez,$headers))

{
echo "1";
echo $message;

}
else
{
echo "0";
}
}
else echo "0";

?>
0
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
Modifié le 6 janv. 2022 à 16:58
j'ai essaye de mettre les var_dump a d autres endroits dans le formulaire mais j obtiens a chaque fois
array(0) { } NULL

lorsque je retire la variable messagez le mail est bien envoyé, par contre si elle est présente aucun mail
j'ai aussi effectué des tests avec la variable messagez vide mais je ne reçois pas de mail non plus
0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
Modifié le 6 janv. 2022 à 17:19
Parfois j'ai l'impression de radoter....

Enfin bon..
Donc..c'est de l'ajax...

Côté JS :

function commander(nom,prenom,cp,email,commande,prix_total,message,ville){
  let datas = {
   nom:nom
  ,prenom:prenom
  ,cp:cp
  ,email:email
  ,commande:commande
  ,prix_total:prix_total
  ,message:message
  ,ville:ville
  };
  
  $.ajax({
    url : 'mail.php',
    type : 'POST',
    data : datas,
    dataType : 'json',
    success : function(reponse){
      console.log('REPONSE AJAX',reponse); // pour voir dans la console JS du navigateur la réponse...
      if (reponse.status == "1"){
        MonPanier.clearpanier();
        afficherpanier();
        document.body.scrollTop = 0;
        document.documentElement.scrollTop = 0;
        $('#mymodal').modal('show');
      }else if (reponse.status == "0"){
        $('#mymodal_erreur').modal('show');
        alert(reponse.error);
      }
    },error: function (error){
      console.log('Erreur ajax',error);
      $('#mymodal_erreur').modal('show');
    }
  });
}
$('#commander').click( function(){
  var nom = document.getElementById("nom").value;
  var prenom = document.getElementById("prenom").value;
  var cp = document.getElementById("cp").value;
  var ville = document.getElementById("ville").value;
  var email = document.getElementById("email").value;
  var commande = JSON.stringify(panier);
  var prix_total = document.getElementById("prix_total").innerHTML;
  var message = document.getElementById("message").value;
  commander(nom,prenom,cp,email,commande,prix_total,message,ville);
});
</script>


Côté PHP

<?php 
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

$result = []; //variable utilisée pour le retour ajax au format json

function getPOST($varName, $default=""){
  return !empty($_POST[$varName) ? trim($_POST[$varName) : $default;
}

// Saisissez ici l'adresse mail du destinataire
$destinataire = "perroquet666@hotmail.com";

// Récupération des variables AVANT de les utiliser
$nom = getPOST("nom");
$prenom = getPOST("prenom");
$cp = getPOST("cp");
$ville = getPOST("ville");
$email = getPOST("email");
$message = nl2br(getPOST("message"));
$commande = !empty($_POST("commande")) ? print_r($_POST,true) : ""; // A mon avis ton souci venait de là.. 
$prix_total = getPOST("prix_total");

if (  $nom && $prenom && $cp && $ville && $email && $message && $commande && $prix_total ) {

  $sujet = 'Commande reçue';
  $messagez = "Nom: ".htmlspecialchars($nom)."<br>
              Prénom: ".htmlspecialchars($prenom)."<br>
              Code postal: ".$cp."<br>
              Ville: ".htmlspecialchars($ville)."<br>
              Adresse e-Mail: ".htmlspecialchars($email)."<br>
              Message: ".htmlspecialchars($message)."<br>
              Liste des produits: <br><br><table>".$commande."</table><br>
              Prix Total: ".htmlspecialchars($prix_total)."";

  $headers = "From: \"Commande\"<".$destinataire.">\n";
  $headers .= "Reply-To: ".$destinataire."\n";
  $headers .= "Content-Type: text/html; charset=\"utf-8\"";
  
  if(mail($destinataire,$sujet,$messagez,$headers)) {
    $result['status'] =  "1";
    $result['message'] =  $message;
  } else {
   $result['status'] = 0;
   $result['error'] =  "Erreur lors de l'envoi du mail ";
  }
} else {
   $result['status'] = 0;
   $result['error'] =  "Variables manquantes";
}

//juste pour le debug ( à la place des var_dump )
$result['debug'] = ['post'=>$_POST, 'messagez'=>$messagez];


//on retourne le résultat au format JSON
echo json_encode($result);

?>



Tu noteras que j'ai ajouté un peu d'indentation dans le code... ça le rend quand même vachement plus facile à lire...

J'ai également modifié le code pour utlisé le format JSON ...

Et comme tu fais de l'ajax .. encore une fois .. pense à regarder dans la console js de ton navigateur internet ce qui s'y affiche ( je te recommande d'utiliser FireFox et de bien penser à cocher, si ce n'est pas déjà fait, la case XHR )
0

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

Posez votre question
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 17:58
bonsoir jordane

un immense merci pour toute cette correction
Mais comme tu le sais c'est un code que j'ai trouvé et dont je m' en suis inspiré et comme il correspondait a ce que je cherchais et qu en plus il me semblait logique

quoi qu il en soit j'ai modifié suivant tes instructions encore merci
je me demande comment tu arrives a coder de cette manière c est incroyable

ce qui donne a présent comme fichier complet j'en ai 3

le html
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Comment créer un panier en JavaScript">
<meta name="author" content="1FORMATIK.com">
<title>Comment créer un panier en JavaScript</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
</head>
<body>
<div class="container bg-light rounded">
<div class="row">
<div class="col-md-12 mt-3">
<div class="row mt-3">
<div class="col-md-4">
</div>
<div class="container">
<div class="row">
<div class="col-sm">
<img src="https://phil.pecheperle.be/image-perles/perle-verre-peche-gardon-2002.JPG" style ="width: 150px;
height: 150px;" alt="canard"/>
</div>
</div>
<div class="row">
<div class="col-sm">
<p>Produit 01 (8.00 €)</p>
</div>
</div>
<div class="row">
<div class="col-sm">
<div class="col-md-4 text-end">
<a style="cursor:pointer;" data-nom="Produit 01" data-prix="8.00" data-select="01" data-checkbox="produit_001" class="btn btn-primary ajouter-panier">ajouter au panier</a>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-md-4">
<p>Produit 02 (15.00 €)</p>
</div>
<div class="col-md-2">
<select class="form-control" id="02">
<option value="XS">XS</option>
<option value="S">S</option>
<option value="M">M</option>
<option value="L">L</option>
<option value="XL">XL</option>
<option value="2XL">2XL</option>
<option value="3XL">3XL</option>
<option value="4XL">4XL</option>
</select>
</div>
<div class="col-md-6 text-end">
<a style="cursor:pointer;" data-nom="Produit 02" data-prix="15.00" data-select="02" class="btn btn-primary ajouter-panier">ajouter au panier</a>
</div>
</div>
<div class="row mt-4">
<div class="col-md-4">
<p>Produit 03 (12.00 €)</p>
</div>
<div class="col-md-8 text-end">
<a style="cursor:pointer;" data-nom="Produit 03" data-prix="12.00" class="btn btn-primary ajouter-panier">ajouter au panier</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 mt-3">
<h4>Votre commande</h4>
</div>
</div>
<div class="row">
<div class="col-md-12 mt-3">
Nombre de produit(s) dans le panier : <span class="total-count"></span>
<br /><br />
<table width="100%" class="show-panier" id="macommande"></table>
<br />
<br />
<p>Select un mode de livraison :</p>
<div>
<input type="radio" id="mondial_relay_belgique" name="envois" value="2" onclick="afficherpanier()">
<label for="mondial_relay_belgique">Envois par mondial relay belgique 5 euros</label>
</div>
<div>
<input type="radio" id="poste_belgique" name="envois" value="3" onclick="afficherpanier()">
<label for="poste_belgique">envois par poste belgique 4 euros</label>
</div>
<div>
<input type="radio" id="mondial_relay_france" name="envois" value="4" checked="checked" onclick="afficherpanier()">
<label for="mondial_relay_france">Envois par mondial relay france 3 euros</label>
</div>
<div>
<input type="radio" id="poste_france" name="envois" value="5" onclick="afficherpanier()">
<label for="poste_france">envois par poste france 2 euros</label>
</div>
<div>*Prix total: <b><span class="total-panier" id="prix_total">0.00</span> euros</b></div>
<br />
<i id="livraison-detail">*Livraison incluse</i>
<div class="text-end"><button class="clear-panier btn btn-danger">Vider le panier</button></div>
</div>
</div>
<div class="row">
<div class="col-md-12 mt-3">
<h4>Adresse de livraison</h4>
</div>
</div>
<div class="row">
<div class="col-md-12 mt-3">
<input class="form-control" type="text" name="nom" value="" id="nom" placeholder="Nom">
<br>
<input class="form-control" type="text" name="prenom" value="" id="prenom" placeholder="Prénom">
<br>
<input class="form-control" type="text" name="cp" value="" id="cp" placeholder="Code postal">
<br>
<input class="form-control" type="text" name="ville" value="" id="ville" placeholder="Ville">
<br>
<input class="form-control" type="text" name="email" value="" id="email" placeholder="e-Mail">
<br>
<textarea class="form-control" id="message" placeholder="Message Optionnel"></textarea>
<br>
<?php
var_dump($_POST);
var_dump($messagez);

?>

<div class="text-end"><button type="button" class="btn btn-success" id="commander">Commander</button></div>
<?php
var_dump($_POST);
var_dump($messagez);

?>
<br>
<div id="qte_minimum_report"></div>
</div>
</div>
<div class="modal" id="mymodal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Commande confirmée</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div id="commande_report">Merci de votre commande</div>

</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
</div>
</div>
</div>
</div>
<div class="modal" id="mymodal_erreur" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Erreur de commande</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div id="commande_report">Une erreur est survenue</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
</div>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
<script src="panier.js"></script>
<script>
function commander(nom,prenom,cp,email,commande,prix_total,message,ville){
  let datas = {
   nom:nom
  ,prenom:prenom
  ,cp:cp
  ,email:email
  ,commande:commande
  ,prix_total:prix_total
  ,message:message
  ,ville:ville
  };
  
  $.ajax({
    url : 'mail.php',
    type : 'POST',
    data : datas,
    dataType : 'json',
    success : function(reponse){
      console.log('REPONSE AJAX',reponse); // pour voir dans la console JS du navigateur la réponse...
      if (reponse.status == "1"){
        MonPanier.clearpanier();
        afficherpanier();
        document.body.scrollTop = 0;
        document.documentElement.scrollTop = 0;
        $('#mymodal').modal('show');
      }else if (reponse.status == "0"){
        $('#mymodal_erreur').modal('show');
      }
    },error: function (error){
      console.log('Erreur ajax',error);
      $('#mymodal_erreur').modal('show');
    }
  });
}
$('#commander').click( function(){
  var nom = document.getElementById("nom").value;
  var prenom = document.getElementById("prenom").value;
  var cp = document.getElementById("cp").value;
  var ville = document.getElementById("ville").value;
  var email = document.getElementById("email").value;
  var commande = JSON.stringify(panier);
  var prix_total = document.getElementById("prix_total").innerHTML;
  var message = document.getElementById("message").value;
  commander(nom,prenom,cp,email,commande,prix_total,message,ville);
});
</script>
</body>
</html>


ensuite le panier en java
// Mon petit panier JS
// https://www.1formatik.com
// 0 pour désactiver les commandes par lot
// 1 pour activer la fonctionnalité de commande par lot
var Qte_Minimum = 0;
// Nombre de produits minimum par lot
var Qte_Minimum_Valeur = 6;
// 0 pour désactiver l'ajout du prix de la livraison
// 1 pour activer la fonctionnalité de modification du prix total pour inclure le prix de la livraison selon un pourcentage du prix total
// 2/3/4/5 pour activer la fonctionnalité de modification du prix total pour inclure le prix de la livraison selon un forfait fixe
//var Livraison = document.getElementById("poste_france").value;
//if (document.getElementById('r1').checked) {
//rate_value = document.getElementById('r1').value;
//if(document.getElementById("mondial_relay_belgique").checked) {
//var Livraison = document.getElementById("mondial_relay_belgique").value;
//}
//else if(document.getElementById('poste_belgique').checked) {
// var Livraison = document.getElementById("poste_belgique").value;
//}
//else if(document.getElementById('mondial_relay_france').checked) {
// var Livraison = document.getElementById("mondial_relay_france").value;
//}
//else if(document.getElementById('poste_france').checked) {
// var Livraison = document.getElementById("poste_france").value;
//}
var Livraison= document.querySelector('input[name="envois"]:checked').value;
console.log(Livraison);
//var Livraison = document.querySelector('input[name="envois"]:checked').value;
// % du prix total total correspondant au prix de la livraison
var Poucentage_Livraison = 25;
// Forfait de la livraison en euro
var Forfait_Livraison_mondial_relay_belgique = 5;
// Forfait de la livraison en euro
var Forfait_Livraison_poste_belgique = 4;
// Forfait de la livraison en euro
var Forfait_Livraison_mondial_relay_france= 3;
// Forfait de la livraison en euro
var Forfait_Livraison_poste_france= 2;
// les messages concernant la fonctionnalité de commande par lot
var txt_qte_minimum_bad = "<font color='red'>Attention les quantités ne sont pas correctes, les commandes se font par lot de " + Qte_Minimum_Valeur + " produits</font>";
var txt_qte_minimum_ok = "<font color='green'>Le nombre de produits est correcte</font>";
var txt_qte_minimum_defaut = "Les commandes se font par lot de " + Qte_Minimum_Valeur + " produits";
// ne pas modifier la suite sauf si vous désirez modifier le code
var MonPanier = (function(){
panier = [];
function Item(nom, prix, quantite) {
this.nom = nom;
this.prix = prix;
this.quantite = quantite;
}
function savepanier(){
sessionStorage.setItem('MonPanier', JSON.stringify(panier));
}
function loadpanier(){
panier = JSON.parse(sessionStorage.getItem('MonPanier'));
}
if (sessionStorage.getItem("MonPanier") != null) {
loadpanier();
}
var obj = {};
obj.ajouter_produit_dans_panier = function(nom, prix, quantite) {
for(var item in panier) {
if(panier[item].nom === nom) {
panier[item].quantite ++;
savepanier();
return;
}
}
var item = new Item(nom, prix, quantite);
panier.push(item);
savepanier();
}
obj.setquantiteForItem = function(nom, quantite) {
for(var i in panier) {
if (panier[i].nom === nom) {
panier[i].quantite = quantite;
break;
}
}
};
obj.enlever_produit_de_panier = function(nom) {
for(var item in panier) {
if(panier[item].nom === nom) {
panier[item].quantite --;
if(panier[item].quantite === 0) {
panier.splice(item, 1);
}
break;
}
}
savepanier();
}
obj.enlever_produit_de_panier_tous = function(nom) {
for(var item in panier) {
if(panier[item].nom === nom) {
panier.splice(item, 1);
break;
}
}
savepanier();
}
obj.clearpanier = function(){
panier = [];
savepanier();
}
obj.totalquantite = function(){
var totalquantite = 0;
for(var item in panier) {
totalquantite += panier[item].quantite;
}
return totalquantite;
}
obj.totalpanier = function(){
var totalpanier = 0;
for(var item in panier) {
totalpanier += panier[item].prix * panier[item].quantite;
}
return Number(totalpanier.toFixed(2));
}
obj.listpanier = function(){
var panierCopy = [];
for(i in panier) {
item = panier[i];
itemCopy = {};
for(p in item) {
itemCopy[p] = item[p];
}
itemCopy.total = Number(item.prix * item.quantite).toFixed(2);
panierCopy.push(itemCopy)
}
return panierCopy;
}
return obj;
})();
$('.ajouter-panier').click(function(event) {
event.preventDefault();
var nom_option = "";
var prix_option = 0;
var option_checkbox = $(this).data('checkbox');
if (option_checkbox != "") {
var checkboxes = document.getElementsByClassName(option_checkbox);
for(var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked == true) {
var nom_option = nom_option + " (" + $(checkboxes[i]).data('nom') +")";
var prix_option = prix_option + Number($(checkboxes[i]).data('prix'));
}
}
}
if ($(this).data('select'))
{
var nom = $(this).data('nom') + " (" + document.getElementById(""+$(this).data('select')+"").value + ")" + nom_option;
}
else var nom = $(this).data('nom');
var prix = Number($(this).data('prix')) + prix_option;
MonPanier.ajouter_produit_dans_panier(nom, prix, 1);
afficherpanier();
});
$('.clear-panier').click(function(){
MonPanier.clearpanier();
afficherpanier();
});
function afficherpanier(){
var panierArray = MonPanier.listpanier();
var output = "";
for(var i in panierArray) {
output += "<tr>"
+ "<td>" + panierArray[i].nom + "</td>"
+ "<td>(" + panierArray[i].prix.toFixed(2) + ")</td>"
+ "<td class='form-inline'><div class='input-group'><button class='btn btn-primary moins-item' data-nom='" + panierArray[i].nom + "'>-</button>"
+ "<input type='number' min='1' class='form-control item-quantite' data-nom='" + panierArray[i].nom + "' value='" + panierArray[i].quantite + "'>"
+ "<button class='btn btn-primary plus-item' data-nom='" + panierArray[i].nom + "'>+</button></div></td>"
+ "<td><button class='btn btn-danger effacer-item' data-nom='" + panierArray[i].nom + "'>X</button></td>"
+ " = "
+ "<td>" + panierArray[i].total + "</td>"
+ "</tr>";
}
$('.show-panier').html(output);


Livraison= document.querySelector('input[name="envois"]:checked').value;
console.log("Livraison: " + Livraison);


if (Livraison == 1)
{
$('.total-panier').html(((MonPanier.totalpanier()) + (MonPanier.totalpanier()/(100/Poucentage_Livraison))).toFixed(2));
document.getElementById('livraison-detail').innerHTML = "Livraison incluse: " + Poucentage_Livraison +"% du prix total.";
}
if (Livraison == 2)
{
$('.total-panier').html((MonPanier.totalpanier() + Forfait_Livraison_mondial_relay_belgique ).toFixed(2));
document.getElementById('livraison-detail').innerHTML = "Livraison incluse avec mondial relay belgique: " + Forfait_Livraison_mondial_relay_belgique +" euros.";
}
if (Livraison == 3)
{
$('.total-panier').html((MonPanier.totalpanier() + Forfait_Livraison_poste_belgique).toFixed(3));
document.getElementById('livraison-detail').innerHTML = "Livraison incluse avec la poste de belgique: " + Forfait_Livraison_poste_belgique +" euros.";
}
if (Livraison == 4)
{
$('.total-panier').html((MonPanier.totalpanier() + Forfait_Livraison_mondial_relay_france).toFixed(4));
document.getElementById('livraison-detail').innerHTML = "Livraison incluse avec mondial relay france: " + Forfait_Livraison_mondial_relay_france +" euros.";
}
if (Livraison == 5)
{
$('.total-panier').html((MonPanier.totalpanier() + Forfait_Livraison_poste_france).toFixed(5));
document.getElementById('livraison-detail').innerHTML = "Livraison incluse avec la poste francaise: " + Forfait_Livraison_poste_france +" euros.";
}
if (Livraison == 0)
{
$('.total-panier').html(((MonPanier.totalpanier())).toFixed(2));
}
$('.total-panier-modal').html(MonPanier.totalpanier());
$('.total-quantite').html(MonPanier.totalquantite());
if ((Qte_Minimum == 1) && (Number.isInteger(MonPanier.totalquantite() / Qte_Minimum_Valeur) == false) && (MonPanier.totalquantite() != 0))
{
document.getElementById('qte_minimum_report').innerHTML = txt_qte_minimum_bad;
}
else if ((Qte_Minimum == 1) && (Number.isInteger(MonPanier.totalquantite() / Qte_Minimum_Valeur) == true) && (MonPanier.totalquantite() != 0))
{
document.getElementById('qte_minimum_report').innerHTML = txt_qte_minimum_ok;
}
else if (Qte_Minimum == 1)
{
document.getElementById('qte_minimum_report').innerHTML = txt_qte_minimum_defaut;
}
else if (Qte_Minimum == 0)
{
document.getElementById('qte_minimum_report').innerHTML = "";
}
}
$('.show-panier').on("click", ".effacer-item", function(event) {
var nom = $(this).data('nom')
MonPanier.enlever_produit_de_panier_tous(nom);
afficherpanier();
})
$('.show-panier').on("click", ".moins-item", function(event) {
var nom = $(this).data('nom')
MonPanier.enlever_produit_de_panier(nom);
afficherpanier();
})
$('.show-panier').on("click", ".plus-item", function(event) {
var nom = $(this).data('nom')
MonPanier.ajouter_produit_dans_panier(nom);
afficherpanier();
})
$('.show-panier').on("change", ".item-quantite", function(event) {
var nom = $(this).data('nom');
var quantite = Number($(this).val());
MonPanier.setquantiteForItem(nom, quantite);
afficherpanier();
});
afficherpanier();



et pour finir le mail
<?php 
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

$result = []; //variable utilisée pour le retour ajax au format json

function getPOST($varName, $default=""){
  return !empty($_POST[$varName]) ? trim($_POST[$varName]) : $default;
}

// Saisissez ici l'adresse mail du destinataire
$destinataire = "perroquet666@hotmail.com";

// Récupération des variables AVANT de les utiliser
$nom = getPOST("nom");
$prenom = getPOST("prenom");
$cp = getPOST("cp");
$ville = getPOST("ville");
$email = getPOST("email");
$message = nl2br(getPOST("message"));
$commande = !empty($_POST("commande")) ? print_r($_POST,true) : ""; // A mon avis ton souci venait de là.. 
$prix_total = getPOST("prix_total");

if (  $nom && $prenom && $cp && $ville && $email && $message && $commande && $prix_total ) {

  $sujet = 'Commande reçue';
  $messagez = "Nom: ".htmlspecialchars($nom)."<br>
              Prénom: ".htmlspecialchars($prenom)."<br>
              Code postal: ".$cp."<br>
              Ville: ".htmlspecialchars($ville)."<br>
              Adresse e-Mail: ".htmlspecialchars($email)."<br>
              Message: ".htmlspecialchars($message)."<br>
              Liste des produits: <br><br><table>".$commande."</table><br>
              Prix Total: ".htmlspecialchars($prix_total)."";

  $headers = "From: \"Commande\"<".$destinataire.">\n";
  $headers .= "Reply-To: ".$destinataire."\n";
  $headers .= "Content-Type: text/html; charset=\"utf-8\"";
  
  if(mail($destinataire,$sujet,$messagez,$headers)) {
    $result['status'] =  "1";
    $result['message'] =  $message;
  } else {
   $result['status'] = 0;
   $result['error'] =  "Erreur lors de l'envoi du mail ";
  }
} else {
   $result['status'] = 0;
   $result['error'] =  "Variables manquantes";
}

//juste pour le debug ( à la place des var_dump )
$result['debug'] = ['post'=>$_POST, 'messagez'=>$messagez];


//on retourne le résultat au format JSON
echo json_encode($result);

?>



je viens de regarder mais malheureusement il y a des erreurs dans la console

0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
6 janv. 2022 à 18:18
Il semble donc qu'il y ait une erreur dans le script PHP.

Remplace le contenu de ton code PHP par le code suivant afin de voir si ça fonctionne

<?php
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

$result = []; //variable utilisée pour le retour ajax au format json

function getPOST($varName, $default=""){
return !empty($_POST[$varName]) ? trim($_POST[$varName]) : $default;
}

echo json_encode($_POST);


Une fois modifié teste un nouveau et dis-nous ce qui s'affiche dans la console
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 18:50
Jordane Merci pour cette correction
c'est super sympa

voici donc le nouveau code
mais de nouveau une erreur

<?php 
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

$result = []; //variable utilisée pour le retour ajax au format json

function getPOST($varName, $default=""){
  return !empty($_POST[$varName]) ? trim($_POST[$varName]) : $default;
}

echo json_encode($_POST);

// Saisissez ici l'adresse mail du destinataire
$destinataire = "perroquet666@hotmail.com";

// Récupération des variables AVANT de les utiliser
$nom = getPOST("nom");
$prenom = getPOST("prenom");
$cp = getPOST("cp");
$ville = getPOST("ville");
$email = getPOST("email");
$message = nl2br(getPOST("message"));
$commande = !empty($_POST("commande")) ? print_r($_POST,true) : ""; // A mon avis ton souci venait de là.. 
$prix_total = getPOST("prix_total");

if (  $nom && $prenom && $cp && $ville && $email && $message && $commande && $prix_total ) {

  $sujet = 'Commande reçue';
  $messagez = "Nom: ".htmlspecialchars($nom)."<br>
              Prénom: ".htmlspecialchars($prenom)."<br>
              Code postal: ".$cp."<br>
              Ville: ".htmlspecialchars($ville)."<br>
              Adresse e-Mail: ".htmlspecialchars($email)."<br>
              Message: ".htmlspecialchars($message)."<br>
              Liste des produits: <br><br><table>".$commande."</table><br>
              Prix Total: ".htmlspecialchars($prix_total)."";

  $headers = "From: \"Commande\"<".$destinataire.">\n";
  $headers .= "Reply-To: ".$destinataire."\n";
  $headers .= "Content-Type: text/html; charset=\"utf-8\"";
  
  if(mail($destinataire,$sujet,$messagez,$headers)) {
    $result['status'] =  "1";
    $result['message'] =  $message;
  } else {
   $result['status'] = 0;
   $result['error'] =  "Erreur lors de l'envoi du mail ";
  }
} else {
   $result['status'] = 0;
   $result['error'] =  "Variables manquantes";
}

//juste pour le debug ( à la place des var_dump )
$result['debug'] = ['post'=>$_POST, 'messagez'=>$messagez];


//on retourne le résultat au format JSON
echo json_encode($result);

?>


0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
6 janv. 2022 à 18:54
Je t'ai dit de remplacer le code par celui que je viens de te donner je ne t'ai pas demandé de l'ajouter...
C'est juste pour voir si le début du script PHP fonctionne...
En fonction de ce que ça va te retourner on ajoutera quelques lignes supplémentaires
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 19:03
ok jordane merci

j'ai donc remplacer tout le code du mail
par le petit morceau donné

donc pas d erreur dans les entêtes

et au niveau de la requête j ai ceci

0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
6 janv. 2022 à 19:24
Ajoute les lignes de code
// Saisissez ici l'adresse mail du destinataire
$destinataire = "perroquet666@hotmail.com";

// Récupération des variables AVANT de les utiliser
$nom = getPOST("nom");
$prenom = getPOST("prenom");
$cp = getPOST("cp");
$ville = getPOST("ville");
$email = getPOST("email");
$message = nl2br(getPOST("message"));
$commande = !empty($_POST("commande")) ? print_r($_POST,true) : ""; // A mon avis ton souci venait de là..
$prix_total = getPOST("prix_total");

Avant le echo
Puis teste
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 19:34
merci jordane
voici donc ce que cela donne

0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
Modifié le 6 janv. 2022 à 20:06
Essaye de ne mettre que les premières
<?php 
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

$result = []; //variable utilisée pour le retour ajax au format json

function getPOST($varName, $default=""){
  return !empty($_POST[$varName]) ? trim($_POST[$varName]) : $default;
}


// Saisissez ici l'adresse mail du destinataire
$destinataire = "perroquet666@hotmail.com";

// Récupération des variables AVANT de les utiliser
// Récupération des variables AVANT de les utiliser
$nom = getPOST("nom");
$prenom = getPOST("prenom");
$cp = getPOST("cp");
$ville = getPOST("ville");
$email = getPOST("email");
$message = nl2br(getPOST("message"));
$commande = !empty($_POST["commande"]) ? print_r($_POST["commande"] ,true) : ""; //L'erreur venait de là.. 
$prix_total = getPOST("prix_total");


echo json_encode($_POST);

0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670 > jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024
6 janv. 2022 à 19:56
Si ça ça marche .. tu pourras remettre le if/else ( avant le echo toujours..)
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 19:58
dans le même temps jordane j'ai effectue un essai en mettant commande en commentaire et je n'ai plus d erreur

<?php 
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

$result = []; //variable utilisée pour le retour ajax au format json

function getPOST($varName, $default=""){
  return !empty($_POST[$varName]) ? trim($_POST[$varName]) : $default;
}

// Saisissez ici l'adresse mail du destinataire
$destinataire = "perroquet666@hotmail.com";

// Récupération des variables AVANT de les utiliser
$nom = getPOST("nom");
$prenom = getPOST("prenom");
$cp = getPOST("cp");
$ville = getPOST("ville");
$email = getPOST("email");
$message = nl2br(getPOST("message"));
//$commande = !empty($_POST("commande")) ? print_r($_POST,true) : ""; // A mon avis ton souci venait de là.. 
$prix_total = getPOST("prix_total");

echo json_encode($_POST);
0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
6 janv. 2022 à 19:59
oui, si tu regardes le code que je viens de te donner .. j'ai en effet corrigé cette ligne...
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 20:00
merci jordane plus aucune erreur
je continue avec le if et le else
0
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 20:07
voila jordane
je reviens vers toi avec donc ce nouveau code
plus aucune erreur
après avoir passé la commande je n'ai pas reçu de message de message comme je recevais tantôt me signalant que la commande était transmisse
et je n'ai rien reçu dans ma boite mail

<?php 
error_reporting(E_ALL);
// Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
ini_set("display_errors", 0);

$result = []; //variable utilisée pour le retour ajax au format json

function getPOST($varName, $default=""){
  return !empty($_POST[$varName]) ? trim($_POST[$varName]) : $default;
}


// Saisissez ici l'adresse mail du destinataire
$destinataire = "perroquet666@hotmail.com";

// Récupération des variables AVANT de les utiliser
// Récupération des variables AVANT de les utiliser
$nom = getPOST("nom");
$prenom = getPOST("prenom");
$cp = getPOST("cp");
$ville = getPOST("ville");
$email = getPOST("email");
$message = nl2br(getPOST("message"));
$commande = !empty($_POST["commande"]) ? print_r($_POST["commande"] ,true) : ""; //L'erreur venait de là.. 
$prix_total = getPOST("prix_total");

if (  $nom && $prenom && $cp && $ville && $email && $message && $commande && $prix_total ) {

  $sujet = 'Commande reçue';
  $messagez = "Nom: ".htmlspecialchars($nom)."<br>
              Prénom: ".htmlspecialchars($prenom)."<br>
              Code postal: ".$cp."<br>
              Ville: ".htmlspecialchars($ville)."<br>
              Adresse e-Mail: ".htmlspecialchars($email)."<br>
              Message: ".htmlspecialchars($message)."<br>
              Liste des produits: <br><br><table>".$commande."</table><br>
              Prix Total: ".htmlspecialchars($prix_total)."";

  $headers = "From: \"Commande\"<".$destinataire.">\n";
  $headers .= "Reply-To: ".$destinataire."\n";
  $headers .= "Content-Type: text/html; charset=\"utf-8\"";
  
  if(mail($destinataire,$sujet,$messagez,$headers)) {
    $result['status'] =  "1";
    $result['message'] =  $message;
  } else {
   $result['status'] = 0;
   $result['error'] =  "Erreur lors de l'envoi du mail ";
  }
} else {
   $result['status'] = 0;
   $result['error'] =  "Variables manquantes";
}

echo json_encode($_POST);
0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
6 janv. 2022 à 20:15
Faut me montrer le résultat dans la console ...
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 20:10
par contre si je supprime
$messagez
du mail
je reçois bien le mail
0
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
Modifié le 6 janv. 2022 à 20:17
donc c est bien cette variable qui mets le bazar
car je confirme que cela fonctionne sans elle
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
6 janv. 2022 à 20:31
a titre informatif je ne recois plus le message "Merci de votre commande" lorsque je clic sur la commande
0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
6 janv. 2022 à 20:35
pour la seconde fois......Faut me montrer le résultat dans la console .
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
7 janv. 2022 à 00:21
enfin enfin cela fonctionne

en fait avec l adresse hotmail cela ne fonctionne pas
j'ai du mettre une adresse gmail

par contre je ne reçois toujours pas le message "merci pour votre commande"
0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
7 janv. 2022 à 00:28
pour la troisième fois......Faut me montrer le résultat dans la console .....

On va compter jusqu'à combien avant que tu te décides à me montrer le contenu de la console lorsque tu envoies un mail ???
Sans cette information je ne peux pas t'aider...
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
7 janv. 2022 à 00:33
je ne savais pas que cela pouvait également se voir dans la console
quoi que , oui tu as raison c 'est logique

mais comme je n'ai aucune erreur


0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 4 670
7 janv. 2022 à 00:50
ligne 55 du script php .. il faut remplacer $_POST par $_RESULT
 if(mail($destinataire,$sujet,$messagez,$headers)) {
    $result['status'] =  "1";
    $result['message'] =  $message;
  } else {
   $result['status'] = 0;
   $result['error'] =  "Erreur lors de l'envoi du mail ";
  }
} else {
   $result['status'] = 0;
   $result['error'] =  "Variables manquantes";
}

echo json_encode($result);
1
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
7 janv. 2022 à 00:57
super nickel jordane tout cela fonctionne a merveille

un immense merci pour ta patience , ta générosité

passe une bonne nuit
0