Récupération de date et de ID pour newsletter

Résolu
Gilledunord Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -  
Gilledunord Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai récupéré ce scritp pour l'envoi de newsletter qui marche bien mais, j'aimerais que la date et le n° de id soit envoyé en même temps pour pouvoir faire une désinscritpion automatique avec un lien envoyer avec la news.

A la place du Id et de la date je reçois des "S"
Merci pour votre aide.
------------------------------------------------------
$db = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ("erreur de connexion");
mysql_select_db($mysql_base,$db) or die ("erreur de connexion base");
$req = "SELECT date,id,email FROM membres" or die ("erreur requête");

$mesdonnee = mysql_query($req, $db) or die(mysql_error());
$nbenreg=mysql_affected_rows();
$nbcols=mysql_num_fields($mesdonnee);
$maxcol=$nbcols-1;
$maxenreg=$nbenreg-1;
$tabdonnee = array();
reset($tabdonnee);
while($ligne = mysql_fetch_array($mesdonnee))
{
$tabdonnee[] = $ligne;
}

$message .= "<html><body bgcolor='#ECE9D8'>
<table><tr><td>".Stripslashes($_POST['news'])."<br>
Envoyé le : ".$req['date']."par moi
<a href='http://monsite/desinscrire.php?id=".$req['id']."'>
Vous désinscrire de notre newsletter</a></td></tr></table>
</body></html>";

// il faut préciser que le mail est bien en html pour pouvoir mettre un lien
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

//à tous ceux qui ont un email dans la base de données
$x=0;
while ($x<$nbenreg)
{

$boitemail=$tabdonnee[$x]['email'];

$sujet="Newsletter de mon site";

if (mail($boitemail,$sujet,$message,$headers))
{
echo "<div align='center'>Mise à jour envoyée à :   ".$boitemail."";
echo "<br><div>";

}else{"PROBLEME DE TRANSMISSION A :$boitemail";
echo "<br>";
}
$x++;
}--
Aime tout le monde et tout le monde t'aimeras.
GilleduNord
A voir également:

4 réponses

Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
Bonjour,

Je pense que tu dois remplacer ton code par celui-ci
//à tous ceux qui ont un email dans la base de données
$x=0;
while ($x<$nbenreg)
{

$message .= "<html><body bgcolor='#ECE9D8'>
<table><tr><td>".Stripslashes($_POST['news'])."<br>
Envoyé le : ".$tabdonnee[$x]['date']."par moi
<a href='http://monsite/desinscrire.php?id=".$tabdonnee[$x]['id']."'>
Vous désinscrire de notre newsletter</a></td></tr></table>
</body></html>";

// il faut préciser que le mail est bien en html pour pouvoir mettre un lien
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$boitemail=$tabdonnee[$x]['email'];

$sujet="Newsletter de mon site";

if (mail($boitemail,$sujet,$message,$headers))
{
echo "<div align='center'>Mise à jour envoyée à :   ".$boitemail."";
echo "<br><div>";

}else{"PROBLEME DE TRANSMISSION A :$boitemail";
echo "<br>";
}
$x++;
}

En fait tes deux variables $req['date'] et $req['id'] ne sont pas correctes, il faut mettre tout ton code dans la boucle while et utilisé la variable $tabdonnee[$x]

A plus
-1
Gilledunord Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour Christounet
Merci pour ta réponse.
j'ai mis ton code, j'ai bien les dates et les id, mais la je reçois tous les messages dans une même boite au lieu d'un message pour chacune des boites, donc tous ceux qui reçoivent peuvent effacer les adresses des autres.

-----------------------------------------------------
$db = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ("erreur de connexion");
mysql_select_db($mysql_base,$db) or die ("erreur de connexion base");
$req = "SELECT date,id,email FROM membres" or die ("erreur requête");

$mesdonnee = mysql_query($req, $db) or die(mysql_error());
$nbenreg=mysql_affected_rows();
$nbcols=mysql_num_fields($mesdonnee);
$maxcol=$nbcols-1;
$maxenreg=$nbenreg-1;
$tabdonnee = array();
reset($tabdonnee);
while($ligne = mysql_fetch_array($mesdonnee))
{
$tabdonnee[] = $ligne;
}

$x=0;
while ($x<$nbenreg)
{

$message .= "<html><body bgcolor='#ECE9D8'>
<table><tr><td>".Stripslashes($_POST['news'])."<br>
Envoyé le : ".$tabdonnee[$x]['date']."par moi
<a href='http://monsite/desinscrire.php?id=".$tabdonnee[$x]['id']."'>
Vous désinscrire de notre newsletter</a></td></tr></table>
</body></html>";

// il faut préciser que le mail est bien en html pour pouvoir mettre un lien
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$boitemail=$tabdonnee[$x]['email'];

$sujet="Newsletter de mon site";

if (mail($boitemail,$sujet,$message,$headers))
{
echo "<div align='center'>Mise à jour envoyée à : ".$boitemail."";
echo "<br><div>";

}else{"PROBLEME DE TRANSMISSION A :$boitemail";
echo "<br>";
}
$x++;
}

--------------------------------------------------------
Aime tout le monde et tout le monde t'aimeras.
GilleduNord
-1
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
Bonjour,

Tu rajoutes du texte à chaque passage dans ta boucle dans ta variable $message.
Change cette ligne
$message .= "<html><body bgcolor='#ECE9D8'> 
par
$message = "<html><body bgcolor='#ECE9D8'> 

En fait enlèves le point avant le signe =
A plus
-1
Gilledunord Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour Christounet

OK maintenant ça marche bien...
Merci pour ton aide.
-1