Variables dans des newsletter PhP

Résolu/Fermé
chlm Messages postés 11 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 9 avril 2010 - 7 mars 2009 à 16:22
chlm Messages postés 11 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 9 avril 2010 - 7 mars 2009 à 20:00
Bonjour,

J'aimerais afficher dans un email que j'envoie automatiquement aux personnes s'inscrivant sur mon site un mail dans le quel je leur rappel leur mot de passe et nom de compte, mais je n'y arrive pas :/
Le problème doit venir du fait que mon message est dans une variable, mais comment puis-je faire autrement sinon?

Mon bout de code concerné:

<?php

ini_set("SMTP","smtp.wanadoo.fr");
$headers ='From: "Nom_admin"<admin@monsite.fr>'."\n";
$headers .='Reply-To: adresse_de_reponse@fai.fr'."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

$message =
'<html><head><title>Newsletter</title>
</head>
<body>
<h2>Bienvenue sur "Nom_du_site",</h> <br /><br />

<h1> Merci de vous êtres inscrits.<br /><br />

Rappel de vos identifiants:<br />
echo "Nom: $nom"; <br /> <= partie concernée
echo "Mot de passe $mdp"; <br /><br /> <= partie concernée
Bonne journée/soirée à vous.<br /></h1>

</body>
</html>'; //fin du message

if(mail('ch.89@hotmail.fr', 'Sujet', $message, $headers))
{
echo 'Le message a été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}

?>

Je suis un débutant, donc merci d'être clair si possible.
J'attends avec impatience vos réponses.
A voir également:

5 réponses

Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
7 mars 2009 à 17:12
Salut

je vois que tu insère la variable $nom dans ton mail mais, elle sort d'où cette variable ? elle est rempli a quel moment ? (pareil pour $mdp)
1
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
7 mars 2009 à 18:20
Salut!
Voici un code que j'utilise pour mon site:
<?php 

require_once('scriptphp/connexion.php'); 

$verifmail="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!";



if (isset($_POST['email'])){ 

	$mail = mysql_real_escape_string($_POST['email']); // mise en variable de l'email
	
	
// requete sur la table user(on récupère les infos de la personne)
mysql_select_db($database, $db);
$verif_query=sprintf("SELECT nom,motpasse FROM user WHERE email_user='$mail' "); // requête sur la table user
$verif = mysql_query($verif_query, $db) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$user = mysql_num_rows($verif);

	if ($user) {	// On test s'il y a un utilisateur correspondant
		    
		
		// déclaration des variables 
		
		$nom = $row_verif['Nom_user']; // Son nom
		$mdp = $row_verif['password']; // Son Prénom
		
	   
	   // si OK alors on on envoi le mail
	   
	   $headers ='From: "Equipe "<equipe@site.com>'."\n"; 
      
       $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
       $headers .='Content-Transfer-Encoding: 8bit'; 
	   $sujet='Rappel de vos identifiants';

     $message ='<html>
	 <head>
	 <title>Vos identifiants</title>
	 <style type="text/css">

			#conteneur {
				width: 100%;
				height:100%; 
				
				}
			#header {
			height: 27px;
			background-color: #6B52FC;
			width:404px;
			font-family: "Trebuchet MS";
			font-size: 18.9px;
			color:#FFFFFF;
			
			}
			#centre {
			background-color:#FFFFFF;
			height:200px;
			width:400px;
			border: 2px solid #6B52FC;
			
			}

			#pied {
			height: 25px;
			background-color:#6B52FC;
			width:404px;
			text-align: center;
			color:#FFFFFF;
					
			}


	</style>
	 </head>
	 <body>
			 <div id="conteneur">
               <br><br>
				<div id="header">
				<p><b>VOS IDENTIFIANTS</b></p>
				
				</div>

				 <div id="centre">
				 <br>
				 <p> <font size="2">&nbsp;&nbsp;Bonjour &quot;<span class="donnee"><font color="#0000FF" size="2"> '.$nom.'</font></span>&quot; .</font></p>
				 <br>
				 <p>&nbsp;&nbsp;Ci-dessous vos identifiants</p>
				 <br>
				 
				 
				 <ul>		
				<li><font color="#FF0000"><b>NOM</font></b>: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>'.$nom.'</strong> </li><br />
				<li><font color="#FF0000"><b>MOT DE PASSE</font></b>: &nbsp;<strong>'.$mdp.'</strong> </li><br />				
								
                 </ul>
				 			 
			 </div>
			 
			 <div id="pied">
                         Site.com
              </div>
				<br><br> 
      <font color="#C0C0C0" size="2">Ce mail est issu d\'un envoi automatique,pri&egrave;re de ne pas y r&eacute;pondre svp.</font>
	  <br>
	 <p><b> L\'&eacute;quipe site</b></p>

			</div>
 
	 
	 </body>
	 </html>'; 

     if(mail($mail, $sujet, $message, $headers)) 
        { 
          header("Location: mdpoubli.php?erreur=ok"); 
     } 
     else 
     { 
          header("Location: mdpoubli.php?erreur=non"); 
     } 

	   
	  	}
		
		else if(!preg_match($verifmail,$_POST['email'])) {
		
		header("Location: mdpoubli.php?erreur=bademail");
	}  
	
	
	else {
		//redirection("index.php?erreur=login");
		
		header("Location: mdpoubli.php?erreur=erreur");
	}
}




?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>- : : : SITE: : : - </title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">

body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 0.8em;
margin: 0;
padding: 0;
height:100%;

}
#conteneur {
width: 100%;
height:100%; 

}
#header {
height: 87px;
background-color:#FFFFFF;
}
#centre {
background-color: #3399FF;
height:485px;
}
#pied {
height: 30px;
background-color: #99CC99;
}
p {margin: 0;}
</style>

</head>

<body>


	  <div id="header">
      <table width="100%" border="0" cellspacing="0">
  <tr>
    <td align="left"><img src="images/logotitre.gif" alt="logo" /></td>
    <td align="right"></td>
  </tr>
</table>
      
     </div>

 <div id="centre">
 <br /><br /><br /><br /><br /><br />
 
  	  <table align="center">
      <form action="" method="post" name="connect">
  
  <p align="center" class="title">
    <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "erreur")) { // Affiche l'erreur  ?>
    <strong class="erreur"><font color="#FF0000">Email non reconnu dans la base!</font></strong>
    <?php } ?>
    <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "ok")) { // Affiche l'erreur ?>
    <strong class="reussite"><font color="#00FF00">Email envoy&eacute; avec succ&egrave;s! </font>!</strong>
    <?php } ?>
    <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "non")) { // Affiche l'erreur ?>
    <strong class="erreur"><font color="#FF0000">Le message n'a pu &ecirc;tre envoy&eacute;</font></strong>
    <?php } ?>
     <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "bademail")) { // Affiche l'erreur  ?>
    <strong class="erreur"><font color="#FF0000">Format d'Email non valide!</font></strong>
    <?php } ?>
  </p>
  
  <table width="300"  border="0" align="center" cellpadding="10" cellspacing="5" bgcolor="#eeeeee" class="tableaux">
    
    <tr>
      <td width="50%""><div align="left">Votre E-mail</div></td>
      <td width="50%"><input name="email" type="text" id="email"></td>
    </tr>
    
    <tr>
      <td height="44" colspan="2"><div align="center">
       <input type="submit" name="Submit" value="Valider">
       
      </div>
      </td>
    </tr>
  </table>
  
</form>
  </table>
  
 </div>
 

                          
                               <div id="pied">
                               
                               
                               </div>
                               
                               
                            

</body>
</html>



Voila,tu adaptes par rapport à tes variables.Le script fonctionne par la saisie de l'email de l'utilisateur c'est-à-dire que si l'utilisateur oubli son mot de passe,il saisie son email afin que son mot de passe lui soit envoyé!
Attention:cette méthode marche avec un mot de passe non haché dans ta base,si tes mots de passe sont hachés alors il te faut un autre script pour permettre la modification du mot de passe.
Dans un premier temps,teste ce script!
1
chlm Messages postés 11 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 9 avril 2010
7 mars 2009 à 17:52
$mdp et $nom sont des variables initialisés plutôt dans le début du code... elles contiennent toute deux des chaines des caractères, mais le problèmes c'est que je ne vois pas le moyen de faire ressortir ce quel contiennent dans le mail que j'envoie.

Merci d'avance
0
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
7 mars 2009 à 18:20
Oui mais la on ne les vois pas s'initialiser sur cette page, tu n'a pas mis tous le code ? c'est une page differente ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chlm Messages postés 11 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 9 avril 2010
7 mars 2009 à 20:00
Rebonjour, merci de votre aide, en feuilletant les centaines d'articles sur les forum du site j'ai réussi à trouver une aide, en fait le problème venait de concaténation ^^ comme en 1ere année de faculté on ne voit que le java j'essaye de concaténé avec "+" alors qu'en php c'est "."

Je donne la partie corrigé si quelqu'un plus tard a le même problème:

<?php
ini_set("SMTP","smtp.wanadoo.fr");
$headers ='From: "Nom_admin"<admin@monsite.fr>'."\n";
$headers .='Reply-To: adresse_de_reponse@fai.fr'."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

$message1 =
'<html><head><title>Newsletter</title>
</head>
<body>
<h2>Bienvenue sur "Nom_du_site",</h> <br /><br />

<h1> Rappel de vos identifiants: <br />
Nom de compte : ' . $nom . '<br />
Mot de passe : ' . $mdp . '<br /><br />

Merci de vous êtres inscrits.<br /><br />

"Nom du site" vous souhaite une bonne journée/soirée!<br />
</body>
</html>';

if(mail($mail, 'Sujet', $message1 , $headers))
{
echo 'Le message a été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
?>



Voila merci de votre aide a++
0