Variable non récupérée dans mon mailsender
Résolu/Fermé
ghisloy
Messages postés
89
Date d'inscription
mercredi 12 novembre 2014
Statut
Membre
Dernière intervention
1 août 2016
-
Modifié par ghisloy le 21/12/2015 à 21:28
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 22 déc. 2015 à 12:08
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 22 déc. 2015 à 12:08
A voir également:
- Variable non récupérée dans mon mailsender
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Windows 10
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ✓ - Forum Python
- Variable d'environnement TEMP ✓ - Forum Windows 7
- Msgbox variable ✓ - Forum VB / VBA
3 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
21 déc. 2015 à 20:57
21 déc. 2015 à 20:57
Bonjour ( SI si ... ça se dit !!!! )
Et puis... un petit texte explicatif indiquant le souci rencontré (en détail....) serait le bienvenue non ?
Donc... quel est le souci ?
De quelles variables parles tu ?
Qu'as tu déjà vérifié ?
Et puis... un petit texte explicatif indiquant le souci rencontré (en détail....) serait le bienvenue non ?
Donc... quel est le souci ?
De quelles variables parles tu ?
Qu'as tu déjà vérifié ?
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 21/12/2015 à 22:12
Modifié par jordane45 le 21/12/2015 à 22:12
Petite question.. pourquoi passes tu par de l'ob_start ?
Ne serait-ce pas plus simple de le faire comme ceci :
Cordialement,
Jordane
ob_start(); ?> <div>Bonjour <?php echo $nom_hotel['NomClient'];?> <?php echo $nom_hotel['PrenClient'];?><br/> Vous venez d'effectuer une réservation de chambre a <?php echo $nom_hotel['NomHotel'];?> merci d’activer votre re´servation en cliquant sur <a href="http://www.headlines-group.net/icompare/active.php?NumReservation=<?php echo $nom_hotel['NumReservation'] ?>?lire=<?php echo md5(11); ?>&action=<?php echo md5(0131); ?>"><b>activer votre réservation</b></a>.<br/> Au cas ou vous voudriez procéder à l'annulation de votre réservation, veuillez cliquer sur <a href="http://www.headlines-group.net/icompare/annuler.php?Code=<?php echo $nom_hotel['Code'] ?>?lire=<?php echo md5(121); ?>&action=<?php echo md5(007); ?>"><b>Annuler la réservation</b></a>. <br/><br/> Merci de bien garder secret ce code <?php echo $nom_hotel['NumReservation'];?> car il vous permettra de donner un avis personnel sur l'hôtel.</br> <p style="color:red;">Ceci est un mail automatique. Merci de ne pas y répondre</p></br> Cordialement </div> <?php $contenu = ob_get_clean();
Ne serait-ce pas plus simple de le faire comme ceci :
$NomClient = $nom_hotel['NomClient'] ; $PrenClient = $nom_hotel['PrenClient']; $NomHotel = $nom_hotel['NomHotel']; $NumReservation = $nom_hotel['NumReservation']; $Code = $nom_hotel['Code']; $contenu = "<div>Bonjour $NomClient $PrenClient <br/> Vous venez d'effectuer une réservation de chambre a $NomHotel merci d’activer votre réservation en cliquant sur <a href='http://www.headlines-group.net/icompare/active.php?NumReservation=$NumReservation&lire=".md5(11)."&action=". md5(0131)." <b>activer votre réservation</b></a>. <br/> Au cas ou vous voudriez procéder à l'annulation de votre réservation, veuillez cliquer sur <a href='http://www.headlines-group.net/icompare/annuler.php?Code=$Code&lire=".md5(121)."&action=".md5(007)."'> <b>Annuler la réservation</b></a>. <br/><br/>Merci de bien garder secret ce code $NumReservation car il vous permettra de donner un avis personnel sur l'hôtel.</br> <p style='color:red;'>Ceci est un mail automatique. Merci de ne pas y répondre</p></br> Cordialement </div>";
Cordialement,
Jordane
ghisloy
Messages postés
89
Date d'inscription
mercredi 12 novembre 2014
Statut
Membre
Dernière intervention
1 août 2016
22 déc. 2015 à 08:40
22 déc. 2015 à 08:40
c'est le script de mail sender que l'on m a donné ça. parait que ceci n'envoie pas les mails dans le spam donc voilà pourquoi je l'ai utilisé
ghisloy
Messages postés
89
Date d'inscription
mercredi 12 novembre 2014
Statut
Membre
Dernière intervention
1 août 2016
22 déc. 2015 à 10:08
22 déc. 2015 à 10:08
j'ai recopier puis coller ton script mais c est le meme resultat. je me suis rendu compte que en fait cette requette
ne marche pas car elle ne GET pas le NumReservation :-( je ne m en sors pas.
$reqhotel="SELECT * FROM HOTEL, RESERVATION WHERE HOTEL.NumHotel=RESERVATION.NumHotel AND RESERVATION.NumReservation='".$_GET['NumReservation']."'"; $resultathotel=mysql_query($reqhotel); $nom_hotel=mysql_fetch_array($resultathotel);
ne marche pas car elle ne GET pas le NumReservation :-( je ne m en sors pas.
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
>
ghisloy
Messages postés
89
Date d'inscription
mercredi 12 novembre 2014
Statut
Membre
Dernière intervention
1 août 2016
Modifié par jordane45 le 22/12/2015 à 10:34
Modifié par jordane45 le 22/12/2015 à 10:34
Tu as quoi dans la barre d'adresse ?
La variable NumReservation est présente ?
Si tu mets un
La variable NumReservation est présente ?
Si tu mets un
print_r($_GET); ?>au début de ta page... qu'est-ce que ça t'affiche ?
ghisloy
Messages postés
89
Date d'inscription
mercredi 12 novembre 2014
Statut
Membre
Dernière intervention
1 août 2016
Modifié par ghisloy le 22/12/2015 à 10:41
Modifié par ghisloy le 22/12/2015 à 10:41
non la variable n'est pas presente ça met NumReservation=(vide) il n y a rien apres le =
j ai mis echo afin d afficher le resultat de la requette et j obtiens
Notice: Undefined index: NumReservation in C:\Program Files (x86)\EasyPHP-12.1\www\IIComparePointCom\info.php on line 12
Resource id #5
http://www.headlines-group.net/icompare/active.php?NumReservation=&lire=6512bd43d9caa6e02c990b0a82652dca&action=7647966b7343c29048673252e490f736
j ai mis echo afin d afficher le resultat de la requette et j obtiens
Notice: Undefined index: NumReservation in C:\Program Files (x86)\EasyPHP-12.1\www\IIComparePointCom\info.php on line 12
Resource id #5
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
>
ghisloy
Messages postés
89
Date d'inscription
mercredi 12 novembre 2014
Statut
Membre
Dernière intervention
1 août 2016
22 déc. 2015 à 10:42
22 déc. 2015 à 10:42
A quel moment est généré l'URL qui est sensée contenir ce NumReservation ?
Quelle ligne de code exactement ?
Quelle ligne de code exactement ?
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 22/12/2015 à 12:09
Modifié par jordane45 le 22/12/2015 à 12:09
Bon...
Histoire de rendre ton code plus propre et plus facile à lire il faut :
- Découper en fonctions
- Faire des retours à la ligne au niveau de tes requêtes
- Récupérer proprement les différentes variables ...
Voici le début du code retravaillé :
Je te laisse faire le reste sur le même modèle.
Cordialement,
Jordane
Histoire de rendre ton code plus propre et plus facile à lire il faut :
- Découper en fonctions
- Faire des retours à la ligne au niveau de tes requêtes
- Récupérer proprement les différentes variables ...
Voici le début du code retravaillé :
<?php //connexion à la BDD require_once("connexion.php"); //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// //fonction getParams() //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// //permet de récupérer proprement les variables.... //par défaut : Méthode = POST // valeur par défaut : '' if(!function_exists('getParams')){ function getParams($name,$method="POST",$default=''){ switch ($method){ case "POST": $var = isset($_POST[$name])?$_POST[$name]:$default; break; case "GET": $var = isset($_GET[$name])?$_GET[$name]:$default; break; } return trim($var); } } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// // Fonctions //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// function INSERT_INTO_RESERVATION($NomClient,$PrenClient,$TelClient,$AdresClient,$EmailClient,$AgeClient,$Nationalite,$MotifReservation,$Demande,$DateReservation,$NumReservation,$NumHotel){ $code=strtoupper(substr(md5(uniqid()),0,5)); $sql="INSERT INTO RESERVATION SET NomClient='$NomClient' ,PrenClient='$PrenClient' ,TelClient='$TelClient' ,AdresClient='$AdresClient' ,EmailClient='$EmailClient' ,AgeClient='$AgeClient' ,Nationalite='$Nationalite' ,MotifReservation='$MotifReservation' ,Demande='$Demande' ,Code='$code' ,DateReservation='$DateReservation' ,NumReservation='$NumReservation' ,NumHotel='$NumHotel'"; $result=mysql_query($sql) or die('<br>Erreur !<br>'.$sql); return $result; } function INSERT_INTO_CONCERNER($NumTypeChambre,$NumService,$NumReservation,$Qte,$DateArrive,$DateRetour){ $sql="INSERT INTO CONCERNER SET NumTypeChambre='$NumTypeChambre' ,NumService='$NumService' ,NumReservation='$NumReservation' ,Qte='$Qte' ,DateArrive='$DateArrive' ,DateRetour='$DateRetour' "; $result=mysql_query($sql) or die('<br>Erreur !<br>'.$sql); return $result; } function GET_INFOS_RESERVATION($NumReservation){ $sql="SELECT * FROM HOTEL, RESERVATION WHERE HOTEL.NumHotel=RESERVATION.NumHotel AND RESERVATION.NumReservation='$NumReservation'"; $result = mysql_query($reqhotel) or die('<br>Erreur !<br>'.$sql); return mysql_fetch_array($resultathotel); } function SendMail($EmailClient,$NomClient,$PrenClient,$datas){ $NomClient = $datas['NomClient'] ; $PrenClient = $datas['PrenClient']; $NomHotel = $datas['NomHotel']; $NumReservation = $datas['NumReservation']; $Code = $datas['Code']; $contenu = "<div>Bonjour $NomClient $PrenClient <br/> Vous venez d'effectuer une réservation de chambre a $NomHotel merci d’activer votre réservation en cliquant sur <a href='http://www.headlines-group.net/icompare/active.php?NumReservation=$NumReservation&lire=".md5(11)."&action=". md5(0131)." <b>activer votre réservation</b></a>. <br/> Au cas ou vous voudriez procéder à l'annulation de votre réservation, veuillez cliquer sur <a href='http://www.headlines-group.net/icompare/annuler.php?Code=$Code&lire=".md5(121)."&action=".md5(007)."'> <b>Annuler la réservation</b></a>. <br/><br/>Merci de bien garder secret ce code $NumReservation car il vous permettra de donner un avis personnel sur l'hôtel.</br> <p style='color:red;'>Ceci est un mail automatique. Merci de ne pas y répondre</p></br> Cordialement </div>"; $mail = new PHPmailer(); $mail->IsMail(); $mail->IsHTML(true); $mail->From="icompare@headlines-group.net"; $mail->FromName="I Compare Point Com"; $mail->AddAddress("$EmailClient", "$NomClient $PrenClient"); //$mail->AddBCC("adresse_emal_cci", "Identite CCI"); $mail->AddReplyTo("icomparenoreply@headlines-group.net", " No Reply"); $mail->Subject="Activer de votre réservation"; $mail->Body=$contenu; $mail->Send(); $mail->SmtpClose(); unset($mail); } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// //récupération propre des variables //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// $NomClient = getParams('NomClient'); $PrenClient = getParams('PrenClient'); $TelClient = getParams('TelClient'); $AdresClient = getParams('AdresClient'); $EmailClient = getParams('EmailClient'); $AgeClient = getParams('AgeClient'); $Nationalite = getParams('Nationalite'); $MotifReservation = getParams('MotifReservation'); $Demande = getParams('Demande'); $DateReservation = getParams('DateReservation'); $NumHote = getParams('NumHote'); $NumTypeChambre = getParams('NumTypeChambre'); $NumService = getParams('NumService'); $Qte = getParams('Qte'); $DateArrive = getParams('DateArrive'); $DateRetour = getParams('DateRetour'); // Début du programme : if(isset($_POST['bouton'])){ $NumReservation = getParams('NumReservation','POST',strtoupper(substr(md5(uniqid()),0,7));); INSERT_INTO_RESERVATION($NomClient,$PrenClient,$TelClient,$AdresClient,$EmailClient,$AgeClient,$Nationalite,$MotifReservation,$Demande,$DateReservation,$NumReservation,$NumHotel);$ INSERT_INTO_CONCERNER($NumTypeChambre,$NumService,$NumReservation,$Qte,$DateArrive,$DateRetour); $infos = GET_INFOS_RESERVATION($NumReservation); //envoie du mail : SendMail($EmailClient,$NomClient,$PrenClient,$infos); }
Je te laisse faire le reste sur le même modèle.
Cordialement,
Jordane
Modifié par ghisloy le 21/12/2015 à 21:31
Le mail part mais, l'url ne récupère pas le NumReservation (permettant d activer la reservation) et pareil pour celui qui récupère le Code (permettant d'annuler la reservation) dans le lien que j'envoie au client. c'est vrai que le lien part mais la partie NumReservation=est vide au lieu de récupérer le numero. svp voyez moi ça. j'ai tout fais depuis hier en vain.
vous pouvez vous rendre sur le site http://www.headlines-group.net/icompare (il s agit d'un comparateur d hotels version amateur) faites une reservation et checker votre mail vous verrez que l'url contenu dedans ne comporte pas les variables que je veux récuperer