Variables dans l'envoi d'email

Guillaume324
Invité n'ayant pas de compte PHPfrance

07 nov. 2013, 12:37

Bonjour,

Je cherche à intégrer les variables dans l'email de suppression de compte de mon site.
Seulement, les pseudo, ville, etc... ne s'affichent pas dans l'email.

Merci

Code : Tout sélectionner

$query2 = mysql_fetch_array(mysql_query("select username, email, naissance, ville, pays FROM 1_users WHERE Clef_Suppression ='$tutu'")); $pseudo=$query2['username']; $email=$query2['email']; $naissance=$query2['naissance']; $ville=$query2['ville']; $pays=$query2['pays']; $mail = "$mail_webmaster"; // Creation du header de l'e-mail. $header .= "From: \"$titresite\"<$mail_webmaster2>".$passage_ligne; $header .= "Reply-to: \"$titresite\" <$mail_webmaster2>".$passage_ligne; $header .= "MIME-Version: 1.0".$passage_ligne; $header .= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne; $sujet .= "Suppression de compte &agrave; $titresite"; $message .= "Suppression de compte &agrave; $titresite : \n"; $message .= "$pseudo, $email, $naissance, $ville, $pays\n"; mail($mail, $sujet, $message, $header);

Mammouth du PHP | 504 Messages

07 nov. 2013, 14:17

Slt,

Ton mail est en php et $pseudo, $email, $naissance, $ville, $pays sont des variables, non?

tu as la solution 2 lige au dessus:
$header .= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
$message .= $pseudo.",". $email.",". $naissance.",".$ville.",". $pays."\n";

Guillaume324
Invité n'ayant pas de compte PHPfrance

07 nov. 2013, 15:03

Merci pour la réponse, mais même avec ce code dans l'email php, ça me donne ça : , , , ,
    $message .= "".$pseudo.",".$email.",".$naissance.",".$ville.",".$pays."\n";

Guillaume324
Invité n'ayant pas de compte PHPfrance

07 nov. 2013, 16:21

Pourtant, la variable $titresite contenue dans l'header s'affiche bien elle.
Le problème viendrait-il de ma requête ?

Mammouth du PHP | 504 Messages

07 nov. 2013, 16:24

testes ta requete sur phpmyadmin par exemple.

Mammouth du PHP | 790 Messages

07 nov. 2013, 16:25

essaye un var_dump de ton tableau avant l'envoi du mail
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Guillaume324
Invité n'ayant pas de compte PHPfrance

07 nov. 2013, 17:43

Le var dump me renvoie un "bool(false) ". Donc la variable est vide.

Mammouth du PHP | 504 Messages

07 nov. 2013, 18:15

$query2 = mysql_fetch_array(mysql_query("select username, email, naissance, ville, pays FROM 1_users WHERE Clef_Suppression ='".$tutu."'"));

Guillaume324
Invité n'ayant pas de compte PHPfrance

07 nov. 2013, 19:24

Merci de ton aide damien_55, mais ça ne me renvoie toujours rien.
Je poste le script, j'en suis à là :
    <?php
    if (isset($_GET['Clef_Suppression'])) { ($tutu=htmlentities($_GET['Clef_Suppression'])); }

    //creation de la requete SQL:
    if(!$cnx) { echo "Connexion impossible à la base de données<br>V&eacute;rifiez config.php"; exit; }
    else
    {
    $sql = "DELETE FROM 1_users WHERE Clef_Suppression ='$tutu';";
    $requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
	
	$query2 = mysql_fetch_array(mysql_query("select username, email, naissance, ville, pays FROM 1_users WHERE Clef_Suppression ='".$tutu."';"));	
	$pseudo=$query2['username'];
 	$email=$query2['email']; 
 	$naissance=$query2['naissance']; 
 	$ville=$query2['ville']; 
 	$pays=$query2['pays']; 
	
  $mail = "$mail_webmaster";	
  $headers  = "From: \"$titresite\"<$mail_webmaster2>\n";
  $headers .= "Reply-to: \"$titresite\"<$mail_webmaster2>".$passage_ligne;
  $headers .= "MIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
  
//=====Definition du sujet.
  $sujet = "Suppression de compte sur le site $titresite !";

  $message  = "Suppression de compte sur le site $titresite.\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n";
  $message .= "Content-Transfer-Encoding: 8bit\n\n";
  $message .= "<html><body>Username : $pseudo<br/><br/>Email : $email<br/>Date de naissance : $naissance<br/>Ville : $ville<br/>Pays : $pays<br/>";
  $message .= "<br>@+";
  $message .= "\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= $content_encode . "\n";
  $message .= "\n\n";
  $message .= "--" . $boundary . "--\n";

  mail($mail, $sujet, $message, $headers);
//==========	
var_dump($query2);	
    }
    if($requete)
    { 
	
	?>
    <?php echo $TsupOK ; ?><br><br>

    <?php }
    else { ?><?php echo $TsupNOOK ; ?>
    <?php }
    ?>

Mammouth du PHP | 504 Messages

07 nov. 2013, 19:40

tu n'as pas modifié:
$sql = "DELETE FROM 1_users WHERE Clef_Suppression ='$tutu';";
???

en plus une virgule en trop.

Mammouth du PHP | 504 Messages

07 nov. 2013, 19:43

là aussi
$query2 = mysql_fetch_array(mysql_query("select username, email, naissance, ville, pays FROM 1_users WHERE Clef_Suppression ='".$tutu."';"));   
c'est quoi ces point virgule qui se baladent ???
$query2 = mysql_fetch_array(mysql_query("select username, email, naissance, ville, pays FROM 1_users WHERE Clef_Suppression ='".$tutu."'"));

Guillaume324
Invité n'ayant pas de compte PHPfrance

07 nov. 2013, 20:21

Voilà, c'est fait :
    $sql = "DELETE FROM 1_users WHERE Clef_Suppression ='".$tutu."'";
    $requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numero: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
	
	$query2 = mysql_fetch_array(mysql_query("select username, email, naissance, ville, pays FROM 1_users WHERE Clef_Suppression ='".$tutu."'"));
Mais la variable est toujours vide, je ne comprend pas...

Mammouth du PHP | 504 Messages

07 nov. 2013, 20:38

tu as testé tes requete sous phpmyadmin ?

tu es sur que ton formulaire envoi quelque chose ?

et pourquoi le if (isset($_GET['Clef_Suppression'])) { ($tutu=htmlentities($_GET['Clef_Suppression'])); }

le if (isset je vois mais quel est ton utilité de $tutu=htmlentities($_GET['Clef_Suppression'])); surtout qu'il s'agit manifestement d'un nom d'utilisateur.

c'ets le htmlentities qui me dérange.

essaie:
if(isset($_GET['Clef_Suppression']))      $tutu=$_GET['Clef_Suppression'];
else $tutu="";
et fais un var_dump, voir ce que ça donne.

Guillaume324
Invité n'ayant pas de compte PHPfrance

07 nov. 2013, 20:47

Oui, j'ai testé sous phpmyadmin, et le formulaire fonctionne parfaitement à la suppression du compte utilisateur.
C'est la requête ($query2) et l'envoi d'email que j'ai rajouté qui posent problème (Le but étant que je reçoive une alerte si un compte est supprimé, je pourrais m'en passer, mais ça me serait quand même utile).

Mammouth du PHP | 504 Messages

07 nov. 2013, 20:55

oulala, la bourde. :? (j'avais pas fait attention)

Tu exécutes la supression avant l'envoi de ton mail donc il ne trouve pas les infos que tu veux puisqu'elle sont dépendantes de ton utilisateurs qui vient d'etre suprimé.
$sql = "DELETE FROM 1_users WHERE Clef_Suppression ='$tutu';";
    $requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
        
        $query2 = mysql_fetch_array(mysql_query("select username, email, naissance, ville, pays FROM 1_users WHERE Clef_Suppression ='".$tutu."';")); 
inverse tes requetes. (voir meme envoi ton mail avant la supression.