Envoi email après validation d'avatar

Résolu/Fermé
Forumeur - 7 nov. 2012 à 08:06
 Forumeur - 8 nov. 2012 à 15:28
Bonjour,

Je souhaite envoyer un email à l'utilisateur après validation de l'avatar dans mon espace membre. Mais je ne sais pas comment récupérer l'adresse email correspondante.

Voici la page de validation de l'avatar :

<form action="avatars.php"  method="post">
<?php
	$query = "SELECT * FROM 1_validavatar ORDER BY id";
	$result = mysql_query($query);

$email = mysql_real_escape_string($_POST['email']);

$avatar_defaut = 'avatars/defaut.jpg';
$i=1;
$type='';
$ref='';
while($info = mysql_fetch_array($result)){
		if($type!=$info["pseudo"]){
      $type = $info["pseudo"];
	  $type2 = $info["url_avatar"];
      $ref=1;
   }else{
      $ref++;
   } 
   		$id = $info["id"];
   		$validation = $info["validation"];
		$true = 'true';
		$false = 'false';
		
		echo $id.' - '.$type.' - <img src="../member_area/'.$type2.'" alt="'.$type.'" /> - '.$validation.'
		<input type="hidden" value="'.$id.'" name="id" id="id"/>
		<input type="radio" name="supp" value="supp">Supprimer
		<input type="radio" name="valid" value="valid">Valider
		<input type="submit" value="OK" id="ok" name="ok"/><br/>';

}

?>
</form>

<?php
if (isset($_POST["supp"])){
$id=$_POST["id"];
$query="UPDATE 1_inscrits SET avatar='$avatar_defaut', id='$id' WHERE id='$id'";
if (mysql_query($query)) {
	
	echo' <script type="text/javascript">
alert("Mise à jour effectuée avec succès !");
setTimeout("window.location=\'\'",1000);
</script>';

} else {
	echo '<br/><span>Erreur de mise à jour:</span>';
}


// Envoi de l'email à l'inscription
$mail = "$email"; // Déclaration de l'adresse de destination.
if (!preg_match('#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#',$mail) || preg_match_all("#hotmail|live|msn#",$mail,$out))  // On filtre les serveurs qui rencontrent des bogues.
{
	$passage_ligne = "\r\n";
}
else
{
	$passage_ligne = "\n";
}
// Déclaration des messages au format texte et au format HTML.
$message_txt = "Bonjour $username, votre image a été supprimée";
$message_html = "<html><head></head><body><b>Bonjour $username</b>, Votre image a été supprimée.</body></html>";
 
// Création de la boundary
$boundary = "-----=".md5(rand());
 
// Définition du sujet.
$sujet = "Votre image pour le site \"$titresite\"";
 
// Création du header de l'e-mail.
$header = "From: \"$titresite\"<$mail_webmaster>".$passage_ligne;
$header.= "Reply-to: \"$titresite\" <$mail_webmaster>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
 
// Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
// Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"UTF-8\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;

$message.= $passage_ligne."--".$boundary.$passage_ligne;
// Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"UTF-8\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
// Envoi
mail($mail,$sujet,$message,$header);
//==========	

$query2="DELETE FROM 1_validavatar WHERE id ='$id'";
if (mysql_query($query2)) {
	$filename = "../member_area/$type2"; //Suppression du fichier
    unlink($filename);
	
	echo '<br/><span style="color:red">Avatar supprimé du site</span>';


} else {
	echo '<br/><span>Erreur de mise à jour: '.mysql_error().'</span>';
}
}
?>


Merci de votre aide !

4 réponses

Utilisateur anonyme
7 nov. 2012 à 19:02
Et bien tu as bien, si je ne m'abuse un table dans ta base de donnée ou tu as les infos sur les membres? Dont l'adresse mail non?
1
Oui, l'adresse email est stockée dans la table 1_validavatar. J'ai essayé de la récupérer, ce que je sais faire avec un simple formulaire, mais là je n'y suis pas arrivé.
0
astuces72 Messages postés 7724 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 27 avril 2024 1 637
Modifié par astuces72 le 8/11/2012 à 08:13
hello

j'ai du mal à comprendre que tu puisses faire ce que tu colles ici, mais que tu ne puisse pas récupérer l'email d'une base !

Mais l'email est déjà dans un POST:
$email = mysql_real_escape_string($_POST['email']);

et que tu utilises ensuite pour l'envoi:
$mail = "$email";

c'est quoi l'erreur exact ?
0
Ce que j'ai posté ne marche pas. J'ai testé et je ne reçois pas l'email.
0