Variable manquante dans un envoi mail php
Résolu/Fermé
houba_houbi
Messages postés
119
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
3 juin 2010
-
19 juin 2009 à 18:33
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 23 juin 2009 à 11:30
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 23 juin 2009 à 11:30
A voir également:
- Variable manquante dans un envoi mail php
- Yahoo mail - Accueil - Mail
- Publipostage mail - Accueil - Word
- Programmer envoi mail gmail - Guide
- Annuler l'envoi d'un mail gmail - Guide
- Creer un compte mail - Guide
10 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 juin 2009 à 18:44
19 juin 2009 à 18:44
normal tu postes un formulaire sans rien dedans
il faut y mettre un champ caché "hidden"
il faut y mettre un champ caché "hidden"
<form id="form_chq" method="post" action="index.html"> <p class="center"><strong>Chèque bancaire :</strong></p> <ul> <li>Je rédige mon chèque à l'ordre XXX</li> <li>J'envoie mon chèque + <a href="javascript:window.print()">impression de cette page</a> à l'adresse : XXXX</li> </ul> <input name="cheque" type="hidden" id="cheque" value="cheque" /> <input name="cheque" type="submit" id="cheque" value="Je choisis le paiement par chèque" /> </form> <form id="form_cb" method="post" action="xxx.html"> <p class="center"><strong>Carte bancaire :</strong></p> <ul> <li>Je vais être redirigé vers l'espace de paiement sécurisé :</li> <li>[LogoCartesXXXXX]</li> </ul> <input name="cb" type="hidden" id="cb" value="cd" /> <input name="cb" type="submit" id="cb" value="Je choisis le paiement par carte bancaire" /> </form> Et php : <?php if(isset($_POST['cheque']) AND $_POST['cheque']=="cheque") { $Paiement = "chq"; } if(isset($_POST['cb']) AND $_POST['cb']=="cb") { $Paiement = "cb"; } //{ //je ne vois pas du tout a quoi sert cette accolade $QuantiteT800 = $_POST['QuantiteT800']; $PrixT800 = $_POST['PrixT800']; $TotalT800 = $_POST['TotalT800']; $QuantiteT1600 = $_POST['QuantiteT1600']; $PrixT1600 = $_POST['PrixT1600']; $TotalT1600 = $_POST['TotalT1600']; $QuantiteT3200 = $_POST['QuantiteT3200']; $PrixT3200 = $_POST['PrixT3200']; $TotalT3200 = $_POST['TotalT3200']; $QuantiteT5400 = $_POST['QuantiteT5400']; $PrixT5400 = $_POST['PrixT5400']; $TotalT5400 = $_POST['TotalT5400']; $Montant = $_POST['Montant']; $CiviliteFacture = $_POST['CiviliteFacture']; $NomFacture = $_POST['NomFacture']; $PrenomFacture = $_POST['PrenomFacture']; $SocieteFacture = $_POST['SocieteFacture']; $AdresseFacture = $_POST['AdresseFacture']; $CpFacture = $_POST['CpFacture']; $VilleFacture = $_POST['VilleFacture']; $Email = $_POST['Email']; $Tel = $_POST['Tel']; $CiviliteLivraison = $_POST['CiviliteLivraison']; $NomLivraison = $_POST['NomLivraison']; $PrenomLivraison = $_POST['PrenomLivraison']; $SocieteLivraison = $_POST['SocieteLivraison']; $AdresseLivraison = $_POST['AdresseLivraison']; $CpLivraison = $_POST['CpLivraison']; $Villelivraison = $_POST['VilleLivraison']; $CommentLivraison = $_POST['CommentLivraison']; $email_destinataire = "xxxx"; $subject = "Votre commande xxx"; $headers = "From: xxxx\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: text/plain;\n"; $headers .= "\tformat=flowed;\n"; $headers .= "\tcharset=\"utf-8\";\n"; $headers .= "\treply-type=original\n"; $headers .= "Content-Transfer-Encoding: 8bit\n"; $headers .= "Reply-To: xxx"; // pas de \r\n à la fin PHP s'en charge $body = "Bonjour,\n\n" ."Nous vous remercions pour votre commande passée sur xxxx. Vous trouverez ci-dessous le récapitulatif de votre commande :\n\n" ."Articles :\n" ."T800 : $QuantiteT800 article(s) à $PrixT800 euros, soit $TotalT800 euros\n\n" ."T1600 : $QuantiteT1600 article(s) à $PrixT1600 euros, soit $TotalT1600 euros\n\n" ."T3200 : $QuantiteT3200 article(s) à $PrixT3200 euros, soit $TotalT3200 euros\n\n" ."T5400 : $QuantiteT5400 article(s) à $PrixT5400 euros, soit $TotalT5400 euros\n\n\n" ."Total commande : $Montant euros\n\n" ."Adresse facturation :\n" ."$CiviliteFacture $NomFacture $PrenomFacture - Société : $SocieteFacture - Adresse : $AdresseFacture $CpFacture $VilleFacture - Email : $Email - Tél. : $Tel\n\n" ."Adresse livraison :\n" ."$CiviliteLivraison $NomLivraison $PrenomLivraison - Société : $SocieteLivraison - Adresse : $AdresseLivraison $CpLivraison $Villelivraison\n\n" ."Commentaire : $CommentLivraison\n\n" ."Mode de paiement : $Paiement\n\n"; mail($email_destinataire, $subject, $body, $headers); // } //meme remarque ?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juin 2009 à 10:14
21 juin 2009 à 10:14
isset ça veut dire is set c'est a dire est ce que la variable existe donc
on s'en sert pour tester si le formulaire est posté
Pour le 2ème $_POST, je pense qu'il s'agit de l'id de l'input "hidden" ? ou du bouton "submit" ? Bon j'ai essayé les 2, je ne récupère pas ma variable dans le mail.
l'id ne sert pas a reuperer les valeurs postées par un champ, ça sert pour atteindre un objet en CSS ou javascript
tu dois récuperer par le name
$_POST['name_du_champ']
on s'en sert pour tester si le formulaire est posté
Pour le 2ème $_POST, je pense qu'il s'agit de l'id de l'input "hidden" ? ou du bouton "submit" ? Bon j'ai essayé les 2, je ne récupère pas ma variable dans le mail.
l'id ne sert pas a reuperer les valeurs postées par un champ, ça sert pour atteindre un objet en CSS ou javascript
tu dois récuperer par le name
$_POST['name_du_champ']
<form .... ... <input name="cheque" type="submit" id="cheque" value="Je choisis le paiement par chèque" /> <input type="hidden" name="chq" id="chq" value="chq" /> ... </form> <form ..... .... <input name="carte_b" type="submit" id="carte_b" value="Je choisis le paiement par carte bancaire" /> <input type="hidden" name="cb" id="cb" value="cb" /> </form> <?php if(isset($_POST['chq']) AND $_POST['chq']=="chq") { $Paiement = "chèque bancaire"; } if(isset($_POST['cb']) AND $_POST['cb']=="cb") { $Paiement = "carte bancaire"; }
houba_houbi
Messages postés
119
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
3 juin 2010
16
22 juin 2009 à 11:07
22 juin 2009 à 11:07
Merci pour tes explications claires... J'aurais appris quelque chose !!
En revanche, comme je mets les mêmes noms pour mes id et name, mon script était donc correct. J'ai essayé aussi avec des noms différents. Rien à faire je n'arrive pas à récupérer ma variable Paiement...
J'ai remodifié mes noms dans le formulaire et le code php :
<input name="paiement_cheque" type="submit" id="paiement_cheque" value="Je choisis le paiement par chèque" /><input type="hidden" name="Paiement" id="chq" value="chèque bancaire" />
<input name="paiement_cb" type="submit" id="paiement_cb" value="Je choisis le paiement par carte bancaire" /><input type="hidden" name="Paiement" id="cb" value="carte bancaire" />
<?php
if(isset($_POST['paiement_cheque']))
{
$Paiement = $_POST['Paiement'];
}
if(isset($_POST['paiement_cb']))
{
$Paiement = $_POST['Paiement'];
}
Si je fais un echo de ma variable Paiement sur la page de destination, j'ai bien ma variable correspondante ! En revanche, c'est dans le mail qu'elle ne veut pas apparaître !!
As-tu essayé chez toi ? ça fonctionne ?
En revanche, comme je mets les mêmes noms pour mes id et name, mon script était donc correct. J'ai essayé aussi avec des noms différents. Rien à faire je n'arrive pas à récupérer ma variable Paiement...
J'ai remodifié mes noms dans le formulaire et le code php :
<input name="paiement_cheque" type="submit" id="paiement_cheque" value="Je choisis le paiement par chèque" /><input type="hidden" name="Paiement" id="chq" value="chèque bancaire" />
<input name="paiement_cb" type="submit" id="paiement_cb" value="Je choisis le paiement par carte bancaire" /><input type="hidden" name="Paiement" id="cb" value="carte bancaire" />
<?php
if(isset($_POST['paiement_cheque']))
{
$Paiement = $_POST['Paiement'];
}
if(isset($_POST['paiement_cb']))
{
$Paiement = $_POST['Paiement'];
}
Si je fais un echo de ma variable Paiement sur la page de destination, j'ai bien ma variable correspondante ! En revanche, c'est dans le mail qu'elle ne veut pas apparaître !!
As-tu essayé chez toi ? ça fonctionne ?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
22 juin 2009 à 17:58
22 juin 2009 à 17:58
je reçois un premier mail MAIS AVANT d'avoir cliqué sur le bouton avec mes variables récupérées de ma page précédente" + Paiement vide
cela s'explique car ta fonction mail(....) se déclenche dès l'exécution de ta 2 ième page
- puis lorsque je clique sur le bouton je reçois le un autre mail sans mes variables précédentes mais cette fois-ci Paiement est rempli.
normal aussi puique ce sont seulement les valurs postées par un des deux formulaires paiement ch ou cb qui sont postées
il faut que tu t'organises différement
une solution:
page 1 toutes les saisies
ensuite affichage de page2 avec les boutons choix paiement mais il faut "t'arranger " pour faire suivre les valeurs de la page 1
une autre solution en stockant tes valeurs dans des variables de session
cela s'explique car ta fonction mail(....) se déclenche dès l'exécution de ta 2 ième page
- puis lorsque je clique sur le bouton je reçois le un autre mail sans mes variables précédentes mais cette fois-ci Paiement est rempli.
normal aussi puique ce sont seulement les valurs postées par un des deux formulaires paiement ch ou cb qui sont postées
il faut que tu t'organises différement
une solution:
page 1 toutes les saisies
ensuite affichage de page2 avec les boutons choix paiement mais il faut "t'arranger " pour faire suivre les valeurs de la page 1
<form name="form1" method="post" action=""> <input name="paiement_cheque" type="submit" id="paiement_cheque" value="Je choisis le paiement par chèque" /> <!-- champs cachés pour les valeurs postées par la page1 --> <input type="hidden" name="QuantiteT800" id="QuantiteT800" value="<?php if(isset($_POST['QuantiteT800'])) echo $_POST['QuantiteT800']; ?>" /> <input type="hidden" name="TotalT800" id="PrixT800" value="<?php if(isset($_POST['PrixT800'])) echo $_POST['PrixT800']; ?>" /> <input type="hidden" name="TotalT800" id="TotalT800" value="<?php if(isset($_POST['TotalT800'])) echo $_POST['TotalT800']; ?>" /> <!-- tu mets tous tes champs page1 ainsi --> <input type="hidden" name="Paiement" id="chq" value="chèque bancaire" /> </form> <form name="form2" method="post" action=""> <input name="paiement_cb" type="submit" id="paiement_cb" value="Je choisis le paiement par carte bancaire" /> <!-- champs cachés pour les valeurs postées par la page1 --> <input type="hidden" name="QuantiteT800" id="QuantiteT800" value="<?php if(isset($_POST['QuantiteT800'])) echo $_POST['QuantiteT800']; ?>" /> <input type="hidden" name="TotalT800" id="PrixT800" value="<?php if(isset($_POST['PrixT800'])) echo $_POST['PrixT800']; ?>" /> <input type="hidden" name="TotalT800" id="TotalT800" value="<?php if(isset($_POST['TotalT800'])) echo $_POST['TotalT800']; ?>" /> <!-- tu mets tous tes champs page1 ainsi --> <input type="hidden" name="Paiement" id="cb" value="carte bancaire" /> </form> <?php if(isset($_POST['paiement_cheque'])) { $Paiement = $_POST['Paiement']; //echo $Paiement; } if(isset($_POST['paiement_cb'])) { $Paiement = $_POST['Paiement']; //echo $Paiement; } if(isset($_POST['paiement_cheque']) OR isset($_POST['paiement_cb'])){ //on ne va faire le mail que si le choix du paiement a ete fait $QuantiteT800 = $_POST['QuantiteT800']; $PrixT800 = $_POST['PrixT800']; $TotalT800 = $_POST['TotalT800']; $QuantiteT1600 = $_POST['QuantiteT1600']; $PrixT1600 = $_POST['PrixT1600']; $TotalT1600 = $_POST['TotalT1600']; $QuantiteT3200 = $_POST['QuantiteT3200']; $PrixT3200 = $_POST['PrixT3200']; $TotalT3200 = $_POST['TotalT3200']; $QuantiteT5400 = $_POST['QuantiteT5400']; $PrixT5400 = $_POST['PrixT5400']; $TotalT5400 = $_POST['TotalT5400']; $Montant = $_POST['Montant']; $CiviliteFacture = $_POST['CiviliteFacture']; $NomFacture = $_POST['NomFacture']; $PrenomFacture = $_POST['PrenomFacture']; $SocieteFacture = $_POST['SocieteFacture']; $AdresseFacture = $_POST['AdresseFacture']; $CpFacture = $_POST['CpFacture']; $VilleFacture = $_POST['VilleFacture']; $Email = $_POST['Email']; $Tel = $_POST['Tel']; $CiviliteLivraison = $_POST['CiviliteLivraison']; $NomLivraison = $_POST['NomLivraison']; $PrenomLivraison = $_POST['PrenomLivraison']; $SocieteLivraison = $_POST['SocieteLivraison']; $AdresseLivraison = $_POST['AdresseLivraison']; $CpLivraison = $_POST['CpLivraison']; $Villelivraison = $_POST['VilleLivraison']; $CommentLivraison = $_POST['CommentLivraison']; $email_destinataire = "xxxx"; $subject = "Votre commande xxx"; $headers = "From: xxxx\n"; $headers .= "Reply-To: xxx\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: text/plain;\n"; $headers .= "\tformat=flowed;\n"; $headers .= "\tcharset=\"utf-8\";\n"; $headers .= "\treply-type=original\n"; $headers .= "Content-Transfer-Encoding: 8bit\n"; $body = "Bonjour,\n\n"; $body .="Nous vous remercions pour votre commande passée sur xxxx. Vous trouverez ci-dessous le récapitulatif de votre commande :\n\n"; $body .="Articles :\n"; $body .="T800 : $QuantiteT800 article(s) à $PrixT800 euros, soit $TotalT800 euros\n\n"; $body .="T1600 : $QuantiteT1600 article(s) à $PrixT1600 euros, soit $TotalT1600 euros\n\n"; $body .="T3200 : $QuantiteT3200 article(s) à $PrixT3200 euros, soit $TotalT3200 euros\n\n"; $body .="T5400 : $QuantiteT5400 article(s) à $PrixT5400 euros, soit $TotalT5400 euros\n\n\n"; $body .="Total commande : $Montant euros\n\n"; $body .="Adresse facturation :\n"; $body .="$CiviliteFacture $NomFacture $PrenomFacture - Société : $SocieteFacture - Adresse : $AdresseFacture $CpFacture $VilleFacture - Email : $Email - Tél. : $Tel\n\n"; $body .="Adresse livraison :\n"; $body .="$CiviliteLivraison $NomLivraison $PrenomLivraison - Société : $SocieteLivraison - Adresse : $AdresseLivraison $CpLivraison $Villelivraison\n\n"; $body .="Commentaire : $CommentLivraison\n\n"; $body .="Mode de paiement : $Paiement\n\n"; mail($email_destinataire, $subject, $body, $headers); } ?>
une autre solution en stockant tes valeurs dans des variables de session
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
23 juin 2009 à 10:09
23 juin 2009 à 10:09
Je vois une solution
dans tes formulaires tu mets:
et dans le script nommé env_mail.php
tu y mets la partie:
dans tes formulaires tu mets:
<form name="form1" method="post" action="env_mail.php?redir=accueil"> <input name="paiement_cheque" type="submit" id="paiement_cheque" value="Je choisis le paiement par chèque" /> <!-- champs cachés pour les valeurs postées par la page1 --> <input type="hidden" name="QuantiteT800" id="QuantiteT800" value="<?php if(isset($_POST['QuantiteT800'])) echo $_POST['QuantiteT800']; ?>" /> <input type="hidden" name="TotalT800" id="PrixT800" value="<?php if(isset($_POST['PrixT800'])) echo $_POST['PrixT800']; ?>" /> <input type="hidden" name="TotalT800" id="TotalT800" value="<?php if(isset($_POST['TotalT800'])) echo $_POST['TotalT800']; ?>" /> <!-- tu mets tous tes champs page1 ainsi --> <input type="hidden" name="Paiement" id="chq" value="chèque bancaire" /> </form> <form name="form2" method="post" action="env_mail.php?redir=secur"> <input name="paiement_cb" type="submit" id="paiement_cb" value="Je choisis le paiement par carte bancaire" /> <!-- champs cachés pour les valeurs postées par la page1 --> <input type="hidden" name="QuantiteT800" id="QuantiteT800" value="<?php if(isset($_POST['QuantiteT800'])) echo $_POST['QuantiteT800']; ?>" /> <input type="hidden" name="TotalT800" id="PrixT800" value="<?php if(isset($_POST['PrixT800'])) echo $_POST['PrixT800']; ?>" /> <input type="hidden" name="TotalT800" id="TotalT800" value="<?php if(isset($_POST['TotalT800'])) echo $_POST['TotalT800']; ?>" /> <!-- tu mets tous tes champs page1 ainsi --> <input type="hidden" name="Paiement" id="cb" value="carte bancaire" /> </form>
et dans le script nommé env_mail.php
tu y mets la partie:
<?php if(isset($_POST['paiement_cheque'])) { $Paiement = $_POST['Paiement']; //echo $Paiement; } if(isset($_POST['paiement_cb'])) { $Paiement = $_POST['Paiement']; //echo $Paiement; } if(isset($_POST['paiement_cheque']) OR isset($_POST['paiement_cb'])){ //on ne va faire le mail que si le choix du paiement a ete fait $QuantiteT800 = $_POST['QuantiteT800']; $PrixT800 = $_POST['PrixT800']; $TotalT800 = $_POST['TotalT800']; $QuantiteT1600 = $_POST['QuantiteT1600']; $PrixT1600 = $_POST['PrixT1600']; $TotalT1600 = $_POST['TotalT1600']; $QuantiteT3200 = $_POST['QuantiteT3200']; $PrixT3200 = $_POST['PrixT3200']; $TotalT3200 = $_POST['TotalT3200']; $QuantiteT5400 = $_POST['QuantiteT5400']; $PrixT5400 = $_POST['PrixT5400']; $TotalT5400 = $_POST['TotalT5400']; $Montant = $_POST['Montant']; $CiviliteFacture = $_POST['CiviliteFacture']; $NomFacture = $_POST['NomFacture']; $PrenomFacture = $_POST['PrenomFacture']; $SocieteFacture = $_POST['SocieteFacture']; $AdresseFacture = $_POST['AdresseFacture']; $CpFacture = $_POST['CpFacture']; $VilleFacture = $_POST['VilleFacture']; $Email = $_POST['Email']; $Tel = $_POST['Tel']; $CiviliteLivraison = $_POST['CiviliteLivraison']; $NomLivraison = $_POST['NomLivraison']; $PrenomLivraison = $_POST['PrenomLivraison']; $SocieteLivraison = $_POST['SocieteLivraison']; $AdresseLivraison = $_POST['AdresseLivraison']; $CpLivraison = $_POST['CpLivraison']; $Villelivraison = $_POST['VilleLivraison']; $CommentLivraison = $_POST['CommentLivraison']; $email_destinataire = "xxxx"; $subject = "Votre commande xxx"; $headers = "From: xxxx\n"; $headers .= "Reply-To: xxx\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: text/plain;\n"; $headers .= "\tformat=flowed;\n"; $headers .= "\tcharset=\"utf-8\";\n"; $headers .= "\treply-type=original\n"; $headers .= "Content-Transfer-Encoding: 8bit\n"; $body = "Bonjour,\n\n"; $body .="Nous vous remercions pour votre commande passée sur xxxx. Vous trouverez ci-dessous le récapitulatif de votre commande :\n\n"; $body .="Articles :\n"; $body .="T800 : $QuantiteT800 article(s) à $PrixT800 euros, soit $TotalT800 euros\n\n"; $body .="T1600 : $QuantiteT1600 article(s) à $PrixT1600 euros, soit $TotalT1600 euros\n\n"; $body .="T3200 : $QuantiteT3200 article(s) à $PrixT3200 euros, soit $TotalT3200 euros\n\n"; $body .="T5400 : $QuantiteT5400 article(s) à $PrixT5400 euros, soit $TotalT5400 euros\n\n\n"; $body .="Total commande : $Montant euros\n\n"; $body .="Adresse facturation :\n"; $body .="$CiviliteFacture $NomFacture $PrenomFacture - Société : $SocieteFacture - Adresse : $AdresseFacture $CpFacture $VilleFacture - Email : $Email - Tél. : $Tel\n\n"; $body .="Adresse livraison :\n"; $body .="$CiviliteLivraison $NomLivraison $PrenomLivraison - Société : $SocieteLivraison - Adresse : $AdresseLivraison $CpLivraison $Villelivraison\n\n"; $body .="Commentaire : $CommentLivraison\n\n"; $body .="Mode de paiement : $Paiement\n\n"; mail($email_destinataire, $subject, $body, $headers); //redirection on peut mettre un header puique qu'on a rien envoyé avant au navigateur if(isset($_GET['redir'])){ if($_GET['redir'] =="accueil"){ //vers page d'accueil header("Location:accueil.html"); }elseif($_GET['redir'] =="secur") //vers page securisée header("Location:paiement_securise.php"); } } } ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
houba_houbi
Messages postés
119
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
3 juin 2010
16
20 juin 2009 à 12:19
20 juin 2009 à 12:19
Merci Alain pour ta réponse rapide.
Je ne pensais pas qu'il fallait envoyer des champs masqués...
Je pensais tout simplement qu'en "disant" si le bouton qui porte le nom X est cliqué, ma variable a le texte X.
Effectivement, j'ai supprimé les accolades -> ça fonctionne
Isset c'est quoi, c'est pour dire, si le bouton est cliqué ?
Pour le 2ème $_POST, je pense qu'il s'agit de l'id de l'input "hidden" ? ou du bouton "submit" ? Bon j'ai essayé les 2, je ne récupère pas ma variable dans le mail.
<input name="cheque" type="submit" id="cheque" value="Je choisis le paiement par chèque" />
<input type="hidden" name="chq" id="chq" value="chq" />
<input name="carte_b" type="submit" id="carte_b" value="Je choisis le paiement par carte bancaire" />
<input type="hidden" name="cb" id="cb" value="cb" />
<?php
if(isset($_POST['cheque']) AND $_POST['chq']=="chq")
{
$Paiement = "chèque bancaire";
}
if(isset($_POST['carte_b']) AND $_POST['cb']=="cb")
{
$Paiement = "carte bancaire";
}
Merci de ton aide
Je ne pensais pas qu'il fallait envoyer des champs masqués...
Je pensais tout simplement qu'en "disant" si le bouton qui porte le nom X est cliqué, ma variable a le texte X.
Effectivement, j'ai supprimé les accolades -> ça fonctionne
Isset c'est quoi, c'est pour dire, si le bouton est cliqué ?
Pour le 2ème $_POST, je pense qu'il s'agit de l'id de l'input "hidden" ? ou du bouton "submit" ? Bon j'ai essayé les 2, je ne récupère pas ma variable dans le mail.
<input name="cheque" type="submit" id="cheque" value="Je choisis le paiement par chèque" />
<input type="hidden" name="chq" id="chq" value="chq" />
<input name="carte_b" type="submit" id="carte_b" value="Je choisis le paiement par carte bancaire" />
<input type="hidden" name="cb" id="cb" value="cb" />
<?php
if(isset($_POST['cheque']) AND $_POST['chq']=="chq")
{
$Paiement = "chèque bancaire";
}
if(isset($_POST['carte_b']) AND $_POST['cb']=="cb")
{
$Paiement = "carte bancaire";
}
Merci de ton aide
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
22 juin 2009 à 13:43
22 juin 2009 à 13:43
chez moi je vois aussi la variable mais j'ai modifié un peu ta methode de concatenation du body et le reply-to
<form name="form1" method="post" action=""> <input name="paiement_cheque" type="submit" id="paiement_cheque" value="Je choisis le paiement par chèque" /> <input type="hidden" name="Paiement" id="chq" value="chèque bancaire" /> </form> <form name="form2" method="post" action=""> <input name="paiement_cb" type="submit" id="paiement_cb" value="Je choisis le paiement par carte bancaire" /> <input type="hidden" name="Paiement" id="cb" value="carte bancaire" /> </form> <?php if(isset($_POST['paiement_cheque'])) { $Paiement = $_POST['Paiement']; //echo $Paiement; } if(isset($_POST['paiement_cb'])) { $Paiement = $_POST['Paiement']; //echo $Paiement; } $QuantiteT800 = $_POST['QuantiteT800']; $PrixT800 = $_POST['PrixT800']; $TotalT800 = $_POST['TotalT800']; $QuantiteT1600 = $_POST['QuantiteT1600']; $PrixT1600 = $_POST['PrixT1600']; $TotalT1600 = $_POST['TotalT1600']; $QuantiteT3200 = $_POST['QuantiteT3200']; $PrixT3200 = $_POST['PrixT3200']; $TotalT3200 = $_POST['TotalT3200']; $QuantiteT5400 = $_POST['QuantiteT5400']; $PrixT5400 = $_POST['PrixT5400']; $TotalT5400 = $_POST['TotalT5400']; $Montant = $_POST['Montant']; $CiviliteFacture = $_POST['CiviliteFacture']; $NomFacture = $_POST['NomFacture']; $PrenomFacture = $_POST['PrenomFacture']; $SocieteFacture = $_POST['SocieteFacture']; $AdresseFacture = $_POST['AdresseFacture']; $CpFacture = $_POST['CpFacture']; $VilleFacture = $_POST['VilleFacture']; $Email = $_POST['Email']; $Tel = $_POST['Tel']; $CiviliteLivraison = $_POST['CiviliteLivraison']; $NomLivraison = $_POST['NomLivraison']; $PrenomLivraison = $_POST['PrenomLivraison']; $SocieteLivraison = $_POST['SocieteLivraison']; $AdresseLivraison = $_POST['AdresseLivraison']; $CpLivraison = $_POST['CpLivraison']; $Villelivraison = $_POST['VilleLivraison']; $CommentLivraison = $_POST['CommentLivraison']; $email_destinataire = "xxxx"; $subject = "Votre commande xxx"; $headers = "From: xxxx\n"; $headers .= "Reply-To: xxx\n"; // pas de \r\n à la fin PHP s'en charge ?? pas d'accord pourquoi php le rajouterai ici et pas sur les autre slignes ! $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: text/plain;\n"; $headers .= "\tformat=flowed;\n"; $headers .= "\tcharset=\"utf-8\";\n"; $headers .= "\treply-type=original\n"; $headers .= "Content-Transfer-Encoding: 8bit\n"; $body = "Bonjour,\n\n"; $body .="Nous vous remercions pour votre commande passée sur xxxx. Vous trouverez ci-dessous le récapitulatif de votre commande :\n\n"; $body .="Articles :\n"; $body .="T800 : $QuantiteT800 article(s) à $PrixT800 euros, soit $TotalT800 euros\n\n"; $body .="T1600 : $QuantiteT1600 article(s) à $PrixT1600 euros, soit $TotalT1600 euros\n\n"; $body .="T3200 : $QuantiteT3200 article(s) à $PrixT3200 euros, soit $TotalT3200 euros\n\n"; $body .="T5400 : $QuantiteT5400 article(s) à $PrixT5400 euros, soit $TotalT5400 euros\n\n\n"; $body .="Total commande : $Montant euros\n\n"; $body .="Adresse facturation :\n"; $body .="$CiviliteFacture $NomFacture $PrenomFacture - Société : $SocieteFacture - Adresse : $AdresseFacture $CpFacture $VilleFacture - Email : $Email - Tél. : $Tel\n\n"; $body .="Adresse livraison :\n"; $body .="$CiviliteLivraison $NomLivraison $PrenomLivraison - Société : $SocieteLivraison - Adresse : $AdresseLivraison $CpLivraison $Villelivraison\n\n"; $body .="Commentaire : $CommentLivraison\n\n"; $body .="Mode de paiement : $Paiement\n\n"; /* //TEST echo $headers."<br>"; echo $subject."<br>"; echo $body."<br>"; */ mail($email_destinataire, $subject, $body, $headers); ?>
houba_houbi
Messages postés
119
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
3 juin 2010
16
22 juin 2009 à 16:07
22 juin 2009 à 16:07
Merci pour ton aide !!!!
Malheureusement, cela ne change pas grand chose... Je m'explique :
Si je mets action ="" (comme toi) :
- je reçois un premier mail MAIS AVANT d'avoir cliqué sur le bouton avec mes variables récupérées de ma page précédente" + Paiement vide
- puis lorsque je clique sur le bouton je reçois le un autre mail sans mes variables précédentes mais cette fois-ci Paiement est rempli.
Si je mets action ="mon url destination" : je reçois j'ai le même fonctionnement sans le 2ème mail car je suis redirigée sur la page de destination.
Donc, j'ai l'impression que la fonction isset n'est pas prise en compte ? ou le script du mail intercalé différemment ? J'ai beau essayé pleins de solutions, je tourne en rond....
Malheureusement, cela ne change pas grand chose... Je m'explique :
Si je mets action ="" (comme toi) :
- je reçois un premier mail MAIS AVANT d'avoir cliqué sur le bouton avec mes variables récupérées de ma page précédente" + Paiement vide
- puis lorsque je clique sur le bouton je reçois le un autre mail sans mes variables précédentes mais cette fois-ci Paiement est rempli.
Si je mets action ="mon url destination" : je reçois j'ai le même fonctionnement sans le 2ème mail car je suis redirigée sur la page de destination.
Donc, j'ai l'impression que la fonction isset n'est pas prise en compte ? ou le script du mail intercalé différemment ? J'ai beau essayé pleins de solutions, je tourne en rond....
houba_houbi
Messages postés
119
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
3 juin 2010
16
22 juin 2009 à 19:53
22 juin 2009 à 19:53
Merci pour ton aide.
Au sujet du formulaire sur 2 pages, c'est déjà ce que j'ai fait : j'ai ma page commande, puis ma page confirmation avec le choix du paiement où je récupère toutes les variables de la page commande.
Ce qu'il me manquait, c'est de les rajouter dans les 2 formulaires du choix du paiement. C'est fait ! Plutôt que de les répéter 3 fois, j'ai fait par un include.
cela s'explique car ta fonction mail(....) se déclenche dès l'exécution de ta 2 ième page
Justement je pensais que le fait d'avoir ajouté un isset ne déclenchais le mail que lorsque le bouton était cliqué ? C'était peut-être pour cela les accolades du départ ?
En voyant ton "ou", je pense que c'est plus simple comme cela :
if(isset($_POST['paiement_cheque']) OR isset($_POST['paiement_cb'])) <----je n'ai mis que ces conditions
//on ne va faire le mail que si le choix du paiement a été fait
{
//Récupération des variables du formulaire par méthode POST
$QuantiteT800 = $_POST['QuantiteT800'];
....
$Paiement = $_POST['Paiement']; <---j'ai ajouté la variable
....
}
Verdict : ça fonctionne !
Mais uniquement avec un action="" pour les formulaires !
Le problème qui reste vient du fait que je veux rediriger vers une page différente :
-vers la page d'accueil pour le paiement par chèque
-vers la page de paiement sécurisé pour le paiement CB
Donc si je mets dans mon formulaire un action="pagex", je suis bien redirigé vers la page, mais le script d'envoi de mail n'a pas le temps de s'exécuter !!! Enfin c'est je que je pense...
Alors est-ce qu'il existerait une fonction php à ajouter à la fin de mon script d'envoi de mail qui permettrait de rediriger vers une page x ou y selon la condition ?
Je n'ai pas trouvé grand chose pour l'instant à part des fonctions header ou meta, qui ne fonctionnent pas dans le cas présent car les entêtes sont déjà envoyées...
Au sujet du formulaire sur 2 pages, c'est déjà ce que j'ai fait : j'ai ma page commande, puis ma page confirmation avec le choix du paiement où je récupère toutes les variables de la page commande.
Ce qu'il me manquait, c'est de les rajouter dans les 2 formulaires du choix du paiement. C'est fait ! Plutôt que de les répéter 3 fois, j'ai fait par un include.
cela s'explique car ta fonction mail(....) se déclenche dès l'exécution de ta 2 ième page
Justement je pensais que le fait d'avoir ajouté un isset ne déclenchais le mail que lorsque le bouton était cliqué ? C'était peut-être pour cela les accolades du départ ?
En voyant ton "ou", je pense que c'est plus simple comme cela :
if(isset($_POST['paiement_cheque']) OR isset($_POST['paiement_cb'])) <----je n'ai mis que ces conditions
//on ne va faire le mail que si le choix du paiement a été fait
{
//Récupération des variables du formulaire par méthode POST
$QuantiteT800 = $_POST['QuantiteT800'];
....
$Paiement = $_POST['Paiement']; <---j'ai ajouté la variable
....
}
Verdict : ça fonctionne !
Mais uniquement avec un action="" pour les formulaires !
Le problème qui reste vient du fait que je veux rediriger vers une page différente :
-vers la page d'accueil pour le paiement par chèque
-vers la page de paiement sécurisé pour le paiement CB
Donc si je mets dans mon formulaire un action="pagex", je suis bien redirigé vers la page, mais le script d'envoi de mail n'a pas le temps de s'exécuter !!! Enfin c'est je que je pense...
Alors est-ce qu'il existerait une fonction php à ajouter à la fin de mon script d'envoi de mail qui permettrait de rediriger vers une page x ou y selon la condition ?
Je n'ai pas trouvé grand chose pour l'instant à part des fonctions header ou meta, qui ne fonctionnent pas dans le cas présent car les entêtes sont déjà envoyées...
houba_houbi
Messages postés
119
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
3 juin 2010
16
23 juin 2009 à 11:26
23 juin 2009 à 11:26
Bonjour,
Génial !!! Cela fonctionne impeccable !!
Je te remercie pour tout le temps passé..... ta patience... et ta pédagogie, car tes explications sont très claires avec des annotations dans le code.
Un très grand merci !!!
Bonne continuation
Génial !!! Cela fonctionne impeccable !!
Je te remercie pour tout le temps passé..... ta patience... et ta pédagogie, car tes explications sont très claires avec des annotations dans le code.
Un très grand merci !!!
Bonne continuation
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
23 juin 2009 à 11:30
23 juin 2009 à 11:30
Ok
Ce fut avec plaisir
Mets Résolu
Ce fut avec plaisir
Mets Résolu