Se connecter avec
S'enregistrer | Connectez-vous
Votre question

Question

Tags :
franqui34@idn http://m.bestofmedia.com/sfp/design/usr/fr/avatars/8e/ed/183914.jpg
Initié
| dans Programmation

Script d'envoi de mail

Bonsoir à tous,
J'ai créé une page PHP contenant un script d'envoi de mail aprés récupération du dernier enregidtrement de la table "Nouveladherent".
Le script ne m'envoie pas le mail. Lorsque j'enlève le DESC LIMIT 1 à la requête SQL, il m'envoie tous les enregistrements de la table.
Où est mon erreur, je butte sur ce problème depuis plusieurs jours.
Merci de votre aide.
Cordialement
-----------------------
Voic mon script:
<?php require_once('Connections/Connect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

mysql_select_db($database_Connect, $Connect);
$query_recupmail = "SELECT Civilite, Nom, Prenom, Mail FROM nouveladherent ORDER by num DESC LIMIT 1";
$recupmail = mysql_query($query_recupmail, $Connect) or die(mysql_error());
$row_recupmail = mysql_fetch_assoc($recupmail);
$totalRows_recupmail = mysql_num_rows($recupmail);
ini_set('sendmail_from', 'franqui34@gmail.com');

// Recuperation des resultats
while($row = mysql_fetch_row($recupmail)){
$Civilite = $row[0];
$Nom = $row[1];
$Prenom = $row[2];
$Mail = $row[3];

//Assignation de variable du destinataire
$email = "monmail@xxxx.com";
// echo $email;
// Préparation du mail d'envoi au responsable Informatique
$sujet = "Avis d'une nouvelle adhésion";
// Construction du message
$message = "Attention, réception d'une nouvelle adhésion,"."\r\n\r\n";
$message .= "La personne qui vient de s'inscrire s'appelle : "."\r\n\r\n";
$message .= "$Civilite $Nom $Prenom "."\r\n\r\n";
$message .= "Son mail est : $Mail"."\r\n\r\n";
$message .= "----------------------------------------------------------"."\r\n\r\n";
$message .= "Penser à lui envoyer un mail de confirmation de sa pré-adhésion."."\r\n\r\n";
$message .= "----------------------------------------------------------"."\r\n";
mail($email, $sujet, $message); // Envoi du mail
}
?>
0
Vous devez être inscrit pour voter pour une question
  • Partagez
  • Etre averti des réponses
  • Ajouter aux favoris
Lassé par la pub ? Créez un compte
Ces contenus peuvent également vous intéresser
Solutions (2)
Meilleure solution
SiM07 http://m.bestofmedia.com/sfp/design/usr/fr/avatars/93/3f/58442.jpg
Expert Programmation
Ex-AdMiN
Pourquoi tu as $row_recupmail = mysql_fetch_assoc($recupmail); ? c'est là que tu "perds" tes infos qui sont donc dans le tableau associatif $row_recupmail. Lorsque tu fais mysql_fetch_row() il n'y a donc plus de résultat.

Vu que tu a toujours un LIMIT 1 alors le while est inutile, tu ne passera oibligatoirement que maximum une fois dans la boucle.

  1. <?php require_once('Connections/Connect.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.  
  10. $theValue = function_exists("mysql_real_escape_string" ) ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  11.  
  12. switch ($theType) {
  13. case "text":
  14. $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  15. break;
  16. case "long":
  17. case "int":
  18. $theValue = ($theValue != "" ) ? intval($theValue) : "NULL";
  19. break;
  20. case "double":
  21. $theValue = ($theValue != "" ) ? doubleval($theValue) : "NULL";
  22. break;
  23. case "date":
  24. $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  25. break;
  26. case "defined":
  27. $theValue = ($theValue != "" ) ? $theDefinedValue : $theNotDefinedValue;
  28. break;
  29. }
  30. return $theValue;
  31. }
  32. }
  33.  
  34. $editFormAction = $_SERVER['PHP_SELF'];
  35. if (isset($_SERVER['QUERY_STRING'])) {
  36. $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  37. }
  38.  
  39. mysql_select_db($database_Connect, $Connect);
  40. $query_recupmail = "SELECT Civilite, Nom, Prenom, Mail FROM nouveladherent ORDER by num DESC LIMIT 1";
  41. $recupmail = mysql_query($query_recupmail, $Connect) or die(mysql_error());
  42. $totalRows_recupmail = mysql_num_rows($recupmail);
  43. $row = mysql_fetch_row($recupmail);
  44. ini_set('sendmail_from', 'franqui34@gmail.com');
  45.  
  46. // Recuperation des resultats
  47. if($totalRows_recupmail >= 1) {
  48. $Civilite = $row[0];
  49. $Nom = $row[1];
  50. $Prenom = $row[2];
  51. $Mail = $row[3];
  52.  
  53. //Assignation de variable du destinataire
  54. $email = "monmail@xxxx.com";
  55. // echo $email;
  56. // Préparation du mail d'envoi au responsable Informatique
  57. $sujet = "Avis d'une nouvelle adhésion";
  58. // Construction du message
  59. $message = "Attention, réception d'une nouvelle adhésion,"."\r\n\r\n";
  60. $message .= "La personne qui vient de s'inscrire s'appelle : "."\r\n\r\n";
  61. $message .= "$Civilite $Nom $Prenom "."\r\n\r\n";
  62. $message .= "Son mail est : $Mail"."\r\n\r\n";
  63. $message .= "----------------------------------------------------------"."\r\n\r\n";
  64. $message .= "Penser à lui envoyer un mail de confirmation de sa pré-adhésion."."\r\n\r\n";
  65. $message .= "----------------------------------------------------------"."\r\n";
  66. mail($email, $sujet, $message); // Envoi du mail
  67. }
  68. ?>


Voilà qui devrait marcher.

En revanche tu devrait éviter le or die() et privilégier un trigger_error("ton message", E_USER_ERROR).
  • Partagez
Autres solutions (1)
Trier par
franqui34@idn http://m.bestofmedia.com/sfp/design/usr/fr/avatars/8e/ed/183914.jpg
Initié
Voter contre
Vous devez avoir un badge bronze dans cette catégorie pour votre contre une solution.
Score 0
Voter pour
Ce score indique à quel point cette solution est soutenue par la communauté. Vous devez être inscrit pour voter pour une solution. Créez votre compte ou identifiez-vous.
Bonjour à tous,
Voilà comment j'ai résolu mon script d'envoi de mail.
<?php require_once('Connections/Connect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

mysql_select_db($database_Connect, $Connect);
$query_recupmail = "SELECT Civilite, Nom, Prenom, Mail FROM nouveladherent ORDER by num DESC LIMIT 1";
$recupmail = mysql_query($query_recupmail, $Connect) or die(mysql_error());

// Recuperation des champs
while($row=mysql_fetch_row($recupmail)) {
$Civilite = $row[0];
$Nom = $row[1];
$Prenom = $row[2];
$Mail = $row[3];

ini_set('sendmail_from', 'franqui34@gmail.com');

//Assignation de varaible du destinataire
$email = "franqui34@gmail.com";

// Préparation du mail d'envoi au responsable Informatique
$sujet = "Avis d'une nouvelle adhésion";
// Construction du message
$message = "Attention, réception d'une nouvelle adhésion,"."\r\n\r\n";
$message .= "La personne qui vient de s'inscrire s'appelle : "."\r\n\r\n";
$message .= "$Civilite $Nom $Prenom "."\r\n\r\n";
$message .= "Son mail est : $Mail"."\r\n\r\n";
$message .= "----------------------------------------------------------"."\r\n\r\n";
$message .= "Penser à lui envoyer un mail de confirmation de sa pré-adhésion."."\r\n\r\n";
$message .= "----------------------------------------------------------"."\r\n";
mail($email, $sujet, $message); // Envoi du mail
}

?>
Il fonctionne correctement et envoie bien le message à l'interessé.
Merci à Sim07.
Cordialement
Lassé par la pub ? Créez un compte
non identifié
Vous n'êtes pas identifié. Se connecter ou S'enregistrer
Tom's guide dans le monde