Email de validation envoyé toujours à la même adresse

Email de validation envoyé toujours à la même adresse - PHP - Programmation

Marsh Posté le 27-08-2011 à 09:51:53    

Salut tout le monde, J'vous présente la situation.
J'ai créer un formulaire pour permettre l'inscription de visiteur, elle se finalise par l'expédition d'un email de confirmation. Mais l'email envoyé contient toujours les même informations, celle de la première inscription inclut dans la table. :pt1cable: Par conséquent le message atterri invariablement dans la même boîte mail. Pas pratique... Merci d'avance à tous ceux qui prendront le temps de me répondre.

Reply

Marsh Posté le 27-08-2011 à 09:51:53   

Reply

Marsh Posté le 27-08-2011 à 19:12:48    

Bonjour,
Sans le code impossible de t'aider !
Copie-colle (ou sur pastbin) la portion qui est responsable de l'envoi de l'email (et de la récupération de l'adresse email de destination).


Message édité par guicara le 27-08-2011 à 19:12:56
Reply

Marsh Posté le 27-08-2011 à 20:05:04    

ok voilà le code...  :)  
 

Code :
  1. <?php require_once('Connections/maDeuxiemeConnexion.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString" )) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "" )
  5. {
  6.   if (PHP_VERSION < 6) {
  7.     $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  8.   }
  9.   $theValue = function_exists("mysql_real_escape_string" ) ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  10.   switch ($theType) {
  11.     case "text":
  12.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  13.       break;   
  14.     case "long":
  15.     case "int":
  16.       $theValue = ($theValue != "" ) ? intval($theValue) : "NULL";
  17.       break;
  18.     case "double":
  19.       $theValue = ($theValue != "" ) ? doubleval($theValue) : "NULL";
  20.       break;
  21.     case "date":
  22.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  23.       break;
  24.     case "defined":
  25.       $theValue = ($theValue != "" ) ? $theDefinedValue : $theNotDefinedValue;
  26.       break;
  27.   }
  28.   return $theValue;
  29. }
  30. }
  31. $editFormAction = $_SERVER['PHP_SELF'];
  32. if (isset($_SERVER['QUERY_STRING'])) {
  33.   $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  34. }
  35. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1" )) {
  36.   $insertSQL = sprintf("INSERT INTO inscriptions (id_abonne, mail, Prénom, nom, `code postal`, `date de naissance`, password) VALUES (%s, %s, %s, %s, %s, %s, %s)",
  37.                        GetSQLValueString($_POST['id_abonne'], "int" ),
  38.                        GetSQLValueString($_POST['mail'], "text" ),
  39.                        GetSQLValueString($_POST['Prénom'], "text" ),
  40.                        GetSQLValueString($_POST['nom'], "text" ),
  41.                        GetSQLValueString($_POST['code_postal'], "int" ),
  42.                        GetSQLValueString($_POST['date_de_naissance'], "date" ),
  43.                        GetSQLValueString($_POST['password'], "text" ));
  44.   mysql_select_db($database_maDeuxiemeConnexion, $maDeuxiemeConnexion);
  45.   $Result1 = mysql_query($insertSQL, $maDeuxiemeConnexion) or die(mysql_error());
  46. $theID = mysql_insert_id();
  47.   $insertGoTo = "confirm_newsletter.php?id_abonne={theID}";
  48.   if (isset($_SERVER['QUERY_STRING'])) {
  49.     $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
  50.     $insertGoTo .= $_SERVER['QUERY_STRING'];
  51.   }
  52.   header(sprintf("Location: %s", $insertGoTo));
  53. }
  54. function Genere_Password($size)
  55. {
  56. // Initialisation des caractères utilisables
  57. $characters = array(0 => array(0, 2, 3, 4, 5, 6, 7, 8, 9),
  58.                  1 => array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" ));
  59. $password_generated  = array();
  60. for($i=0;$i<$size;$i++)
  61. {
  62.  // On choisit au hasard entre quelle sorte de caractères choisir
  63.  $p = rand(0, 1);
  64.  switch($p)
  65.  {
  66.   case 0: $q = rand(0, 8);
  67.        break;
  68.   case 1: $q = rand(0, 24);
  69.     break;
  70.  }
  71.  $password_generated[$i] = $characters[$p][$q];
  72. }
  73. return implode("", $password_generated);
  74. }
  75. // génération
  76. $mon_mot_de_passe = Genere_Password(6);
  77. mysql_select_db($database_maDeuxiemeConnexion, $maDeuxiemeConnexion);
  78. $query_Recordset1 = "SELECT * FROM inscriptions";
  79. $Recordset1 = mysql_query($query_Recordset1, $maDeuxiemeConnexion) or die(mysql_error());
  80. $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  81. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  82. ?>
  83. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  84. <html xmlns="http://www.w3.org/1999/xhtml">
  85. <head>
  86. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  87. <title>Paghyra | Inscription</title>
  88. <link href="styll.css" rel="stylesheet" type="text/css" />
  89. <script type="text/javascript">
  90. <!--
  91. function MM_validateForm() { //v4.0
  92.   if (document.getElementById){
  93.     var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  94.     for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
  95.       if (val) { nm=val.name; if ((val=val.value)!="" ) {
  96.         if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
  97.           if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
  98.         } else if (test!='R') { num = parseFloat(val);
  99.           if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
  100.           if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
  101.             min=test.substring(8,p); max=test.substring(p+1);
  102.             if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
  103.       } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  104.     } if (errors) alert('The following error(s) occurred:\n'+errors);
  105.     document.MM_returnValue = (errors == '');
  106. } }
  107. //-->
  108. </script>
  109. </head>
  110. <body onload="MM_validateForm('mail','','RisEmail');return document.MM_returnValue">
  111. <form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
  112. <form action="<?php echo $editFormAction; ?>" method="post" name="form1" onsubmit="MM_validateForm('mail','','RisEmail');return document.MM_returnValue">
  113. <fieldset>
  114.   <legend>Inscrivez-vous à notre newsletter</legend>
  115.   <p>
  116.     <label>Email :</label>
  117.     <input name="mail" type="text" id="mail" value="" size="32">
  118.   </p>
  119.   <p>
  120.     <label>Prénom :</label>
  121.     <input type="text" name="Prénom" value="" size="32">
  122.     <br /><br />
  123.     <label>Nom :</label>
  124.     <input type="text" name="nom" value="" size="32">
  125.     <br /><br />
  126.     <label>Code Postal :</label>
  127.     <input type="text" name="code postal" value="" size="32">
  128.     <br /><br />
  129.     <label>Date de naissance:</label>
  130.     <input type="text" name="date de naissance" value="" size="32">
  131.     <br />
  132.     <input type="hidden" name="password" value="<?php echo $mon_mot_de_passe; ?>">
  133.     <br />
  134.   </p>
  135.   <div align="center">
  136.     <input name="submit" type="submit" class="bouton" value="Envoyer" />
  137.     <input type="hidden" name="MM_insert" value="form1">
  138.   </div>
  139. </fieldset>
  140. </form>
  141.   <input type="hidden" name="MM_insert" value="form1" />
  142. </form>
  143. <p>&nbsp;</p>
  144. </body>
  145. </html>
  146. <?php
  147. mysql_free_result($Recordset1);
  148. ?>


 

Code :
  1. <?php require_once('Connections/maDeuxiemeConnexion.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString" )) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "" )
  5. {
  6.   if (PHP_VERSION < 6) {
  7.     $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  8.   }
  9.   $theValue = function_exists("mysql_real_escape_string" ) ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  10.   switch ($theType) {
  11.     case "text":
  12.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  13.       break;   
  14.     case "long":
  15.     case "int":
  16.       $theValue = ($theValue != "" ) ? intval($theValue) : "NULL";
  17.       break;
  18.     case "double":
  19.       $theValue = ($theValue != "" ) ? doubleval($theValue) : "NULL";
  20.       break;
  21.     case "date":
  22.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  23.       break;
  24.     case "defined":
  25.       $theValue = ($theValue != "" ) ? $theDefinedValue : $theNotDefinedValue;
  26.       break;
  27.   }
  28.   return $theValue;
  29. }
  30. }
  31. mysql_select_db($database_maDeuxiemeConnexion, $maDeuxiemeConnexion);
  32. $query_Recordset1 = "SELECT * FROM inscriptions";
  33. $Recordset1 = mysql_query($query_Recordset1, $maDeuxiemeConnexion) or die(mysql_error());
  34. $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  35. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  36. $email=$row_Recordset1['mail'];
  37. $sujet="Votre inscription à notre newsletter";
  38. $message="Bonjour,\n\n";
  39. $message.="Vous venez de vous inscrire à la newsletter de paghyra.fr.cr \n";
  40. $message.="Voici vos codes d'accès : \n";
  41. $message.="Login :".$row_Recordset1['mail']."\n";
  42. $message.="Mot de passe :".$row_Recordset1['password']."\n";
  43. $message.="Si vous souhaitez vous désabonner, cliquez ici : http://paghyra.fr.cr/desabonne_new [...] Recordset1['id_abonne']."\n";
  44. $headers="From: tecumseh@franceserv.com \n";
  45. $headers.="MIME-version: 1.0\n";
  46. $headers.="Content-type: text/html; charset= iso-8859-1\n";
  47. $headers.="Bcc: tecumseh@franceserv.com\n";
  48. mail($email,$sujet,$message,$headers);
  49. ?>
  50. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  51. <html xmlns="http://www.w3.org/1999/xhtml">
  52. <head>
  53. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  54. <title>Paghyra | Inscription</title>
  55. </head>
  56. <body>
  57. Un e-mail vous a été adressé à l’adresse que vous nous avez communiquée, confirmant votre inscription.
  58. </body>
  59. </html>
  60. <?php
  61. mysql_free_result($Recordset1);
  62. ?>


Message édité par Tecumseh le 27-08-2011 à 20:08:37
Reply

Marsh Posté le 27-08-2011 à 21:35:57    

L'envoi de l'email se fait à la ligne 52 :

Code :
  1. mail($email,$sujet,$message,$headers);


 
Le destinataire est $email (voir ligne 40).
Et donc c'est ta requete $query_Recordset1 qui ne va pas :
 
$query_Recordset1 = "SELECT * FROM inscriptions";

Reply

Marsh Posté le 28-08-2011 à 00:19:06    

J'ai essayé beaucoup de combinaisons...mais rien ne fonctionne, c'est désespérant. Devrais-je utiliser une condition WHERE pour la requête?

Reply

Marsh Posté le 28-08-2011 à 03:10:13    

Dans la requête que tu as fait ("SELECT * FROM inscriptions" ), tu demande à ton SGBD de te retourner tout les (*) enregistrements de la table inscriptions.
 
Deux solutions : soit tu reste comme ça et tu parcours dans une itération (comme foreach) enregistrement / enregistrment. Soit tu utilise une clause WHERE.
 
Ce n'est pas bien compliqué.
 
PS : Désolé, je n'ai pas le temps de me plonger totalement dans ton code.

Reply

Marsh Posté le 28-08-2011 à 09:34:40    

J'ai tenté de formuler la requête en utilisant la clause WHERE mais je sais qu'il ya une erreur de syntaxe quelque part, aucun email n'est expédié avec ce script...
 

Code :
  1. <?php require_once('Connections/maDeuxiemeConnexion.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString" )) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "" )
  5. {
  6.   if (PHP_VERSION < 6) {
  7.     $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  8.   }
  9.   $theValue = function_exists("mysql_real_escape_string" ) ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  10.   switch ($theType) {
  11.     case "text":
  12.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  13.       break;   
  14.     case "long":
  15.     case "int":
  16.       $theValue = ($theValue != "" ) ? intval($theValue) : "NULL";
  17.       break;
  18.     case "double":
  19.       $theValue = ($theValue != "" ) ? doubleval($theValue) : "NULL";
  20.       break;
  21.     case "date":
  22.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  23.       break;
  24.     case "defined":
  25.       $theValue = ($theValue != "" ) ? $theDefinedValue : $theNotDefinedValue;
  26.       break;
  27.   }
  28.   return $theValue;
  29. }
  30. }
  31. $colname_Recordset1 = "-1";
  32. if (isset($_GET['id_abonne'])) {
  33.   $colname_Recordset1 = $_GET['id_abonne'];
  34. }
  35. mysql_select_db($database_maDeuxiemeConnexion, $maDeuxiemeConnexion);
  36. $query_Recordset1 = sprintf("SELECT * FROM inscriptions WHERE id_abonne = %s", GetSQLValueString($colname_Recordset1, "int" ));
  37. $Recordset1 = mysql_query($query_Recordset1, $maDeuxiemeConnexion) or die(mysql_error());
  38. $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  39. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  40. $email=$row_Recordset1['mail'];
  41. $sujet="Votre inscription à notre newsletter";
  42. $message="Bonjour,\n\n";
  43. $message.="Vous venez de vous inscrire à la newsletter de monsite.com \n";
  44. $message.="Voici vos codes d'accès : \n";
  45. $message.="Login :".$row_Recordset1['mail']."\n";
  46. $message.="Mot de passe :".$row_Recordset1['password']."\n";
  47. $message.="Si vous souhaitez vous désabonner, cliquez ici : http://monsite.com/desabonne_newsl [...] Recordset1['id_abonne']."\n";
  48. $headers="From: moi@monsite.com \n";
  49. $headers.="MIME-version: 1.0\n";
  50. $headers.="Content-type: text/html; charset= iso-8859-1\n";
  51. $headers.="Bcc: moi@monsite.com\n";
  52. mail($email,$sujet,$message,$headers);
  53. ?>
  54. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  55. <html xmlns="http://www.w3.org/1999/xhtml">
  56. <head>
  57. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  58. <title>Paghyra | Inscription</title>
  59. </head>
  60. <body>
  61. Un e-mail vous a été adressé à l’adresse que vous nous avez communiquée, confirmant votre inscription.
  62. </body>
  63. </html>
  64. <?php
  65. mysql_free_result($Recordset1);
  66. ?>


 
 
 
 

Reply

Marsh Posté le 28-08-2011 à 15:49:55    

Finalement, j'pense avoir trouvé la solution. Le problème ne venait pas de la requête. Elle se situait sur la ligne 126 de la première page de code que j'ai envoyé : <input name="mail" type="text" id="mail" value="" size="32">

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed