Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1758 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2097881
Tecumseh
Posté le 27-08-2011 à 09:51:53  profilanswer
 

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.

mood
Publicité
Posté le 27-08-2011 à 09:51:53  profilanswer
 

n°2097933
guicara
Posté le 27-08-2011 à 19:12:48  profilanswer
 

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
n°2097935
Tecumseh
Posté le 27-08-2011 à 20:05:04  profilanswer
 

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
n°2097940
guicara
Posté le 27-08-2011 à 21:35:57  profilanswer
 

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";

n°2097950
Tecumseh
Posté le 28-08-2011 à 00:19:06  profilanswer
 

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?

n°2097955
guicara
Posté le 28-08-2011 à 03:10:13  profilanswer
 

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.

n°2097965
Tecumseh
Posté le 28-08-2011 à 09:34:40  profilanswer
 

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. ?>


 
 
 
 

n°2097991
Tecumseh
Posté le 28-08-2011 à 15:49:55  profilanswer
 

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">


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
Formulaire emailVérification email
Récupérer le prénom grâce à l'adresse mailFabriquer un email en HTML
Validation formulaire impossibleIntégration adresse email Excel ==> Outlook
Problème avec envoi d'email depuis Excel en passant par outlookCarnet d'adresse en ligne
Tester une adresse 
Plus de sujets relatifs à : Email de validation envoyé toujours à la même adresse


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR