Envoi email après validation d'avatar

Résolu
Forumeur -  
 Forumeur -
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
 
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
Forumeur
 
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 7769 Date d'inscription   Statut Membre Dernière intervention   1 641
 
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
Forumeur
 
Ce que j'ai posté ne marche pas. J'ai testé et je ne reçois pas l'email.
0