Variable non récupérée dans mon mailsender
Résolu
ghisloy
Messages postés
89
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Le mail part mais, l'url <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); ?>"></a> 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
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
<?php require_once("connexion.php"); $NumReservation=strtoupper(substr(md5(uniqid()),0,7)); if(isset($_POST['bouton'])){ $code=strtoupper(substr(md5(uniqid()),0,5)); $requete4="INSERT INTO RESERVATION SET NomClient='".$_POST['NomClient']."',PrenClient='".$_POST['PrenClient']."',TelClient='".$_POST['TelClient']."',AdresClient='".$_POST['AdresClient']."',EmailClient='".$_POST['EmailClient']."',AgeClient='".$_POST['AgeClient']."',Nationalite='".$_POST['Nationalite']."',MotifReservation='".$_POST['MotifReservation']."',Demande='".$_POST['Demande']."',Code='$code',DateReservation='".$_POST['DateReservation']."',NumReservation='".$_POST['NumReservation']."',NumHotel='".$_POST['NumHotel']."'"; $resultat4=mysql_query($requete4); $requete5="INSERT INTO CONCERNER SET NumTypeChambre='".$_POST['NumTypeChambre']."',NumService='".$_POST['NumService']."',NumReservation='".$_POST['NumReservation']."',Qte='".$_POST['Qte']."',DateArrive='".$_POST['DateArrive']."',DateRetour='".$_POST['DateRetour']."' "; $resultat5=mysql_query($requete5); $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); // Envoi d'email via PHP Mailer include_once("admin/phpmailer/class.phpmailer.php"); 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(); $mail = new PHPmailer(); $mail->IsMail(); $mail->IsHTML(true); $mail->From="icompare@headlines-group.net"; $mail->FromName="I Compare Point Com"; $mail->AddAddress("{$_POST['EmailClient']}", "{$_POST['NomClient']} {$_POST['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); } if(isset($_GET['lire'])){ $requete1="SELECT AVOIR.Prix,AVOIR.NumTypeChambre,AVOIR.NumHotel,TYPE_CHAMBRE.NumTypeChambre,TYPE_CHAMBRE.LibTypeChambre,HOTEL.NumHotel,NomHotel,DescriptionHotel,Photo,TelHotel,Situation,AdresHotel,Email,Image1,Image2,Image3,Image4,Image5,Image6,VILLE.LibVille FROM VILLE,HOTEL,TYPE_CHAMBRE,AVOIR WHERE md5( HOTEL.NumHotel ) LIKE '%".$_GET['lire']."%' AND TYPE_CHAMBRE.NumTypeChambre=AVOIR.NumTypeChambre AND HOTEL.NumHotel=AVOIR.NumHotel AND VILLE.NumVille=HOTEL.NumVille "; $resultat1=mysql_query($requete1) or die(mysql_error()); $requete2="SELECT CARACTERISTIQUE.LibCaracteristique,DISPOSER.NumCaracteristique,DISPOSER.NumTypeChambre,AVOIR.Prix,AVOIR.NumTypeChambre,AVOIR.ImageType,AVOIR.NumHotel,TYPE_CHAMBRE.NumTypeChambre,TYPE_CHAMBRE.LibTypeChambre,HOTEL.NumHotel, NomHotel,Caracteristique,DescriptionHotel,Photo,TelHotel,Situation,AdresHotel,Email,Image1,Image2,Image3,Image4,Image5,Image6,Image7,Image8,Image9,Image10,VILLE.LibVille FROM VILLE,DISPOSER,CARACTERISTIQUE,HOTEL,TYPE_CHAMBRE,AVOIR WHERE md5(HOTEL.NumHotel) LIKE '%".$_GET['lire']."%' AND TYPE_CHAMBRE.NumTypeChambre=AVOIR.NumTypeChambre AND md5(HOTEL.NumHotel)= md5(AVOIR.NumHotel) AND VILLE.NumVille=HOTEL.NumVille AND CARACTERISTIQUE.NumCaracteristique=DISPOSER.NumCaracteristique AND TYPE_CHAMBRE.NumTypeChambre=DISPOSER.NumTypeChambre"; $resultat2=mysql_query($requete2); $requetetop="UPDATE HOTEL SET HOTEL.TopRech=HOTEL.TopRech+1 WHERE md5(NumHotel) LIKE'%".$_GET['lire']."%'"; $restop=mysql_query($requetetop); } $requete3="SELECT * FROM SERVICE_PLUS"; $resultat3=mysql_query($requete3); ?>
A voir également:
- Variable non récupérée dans mon mailsender
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Vba range avec variable ✓ - Forum VB / VBA
- Range avec une Variable ✓ - Forum VB / VBA
- Variable objet ou variable de bloc With non définie: Erreur d'éxécution 91 ✓ - Forum VB / VBA
- Variable d'environnement temp ✓ - Forum Microsoft Office
3 réponses
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é ?
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
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.
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
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
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