fonction mail() avec boucle while

Petit nouveau ! | 6 Messages

09 juil. 2011, 13:09

bonjour à tous,

voila je vien vers vous car je rencontre un problème avec a fonction mail de mon code.

J'ai 2 inscrit dans ma bdd qui sont avec l'adresse mail '[email protected]'

et quand j'exécute mon code, le premier reçoit le mail correctement mais le deuxième reçoit le contenu du mail du premier et le contenue du siens.

auriez-vous une idée d'ou pourrait venir ce problème :?:

Code : Tout sélectionner

<?php session_start(); require("connect.php"); $req5 = mysql_db_query($sql_bdd,"SELECT * FROM users WHERE email='[email protected]'"); while ($rec5 = mysql_fetch_assoc($req5)) { if($rec5["date_vip27_mail"]=="0") { if($datetoday==$rec5["date_vip27"]) { $login=$rec5["login"]; mysql_db_query($sql_bdd,"UPDATE users SET date_vip27_mail='0' WHERE login='$login'"); $username = $rec5["login"]; $titre = "Daceradio VIP : 3 jours restants"; $send = $rec5["email"]; $headers="From: [email protected]"; $messageNewinsc .="\n\nBonjour ".$rec5["login"]."."; $messageNewinsc .="\n\nTon compte VIP arrive à expiration dans 3 jours."; $messageNewinsc .="\n\nDate de ton vip: ".date("d",$rec5["date_vip"])."/".date("m",$rec5["date_vip"])."/".date("Y",$rec5["date_vip"]).""; $messageNewinsc .="\n\nPour consulter ton profil VIP clique ici: http://www.daceradio.com/vip.php?etat=statut"; $messageNewinsc .="\n\nPour renouvler ton compte VIP clique ici: http://www.daceradio.com/vip.php?etat=demande"; $messageNewinsc .="\n\nEn cas de problème, tu peux contacter notre service d'aide à l'adresse suivante: [email protected]"; $messageNewinsc .="\n\nL'équipe VIP de DaceRadio.com"; mail($send, $titre, $messageNewinsc, $headers); } } } mysql_close(); ?>

Merci d'avance

David

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 juil. 2011, 13:50

C'est parce que tu ajoutes tes messages les uns à la suite des autres sans jamais réinitialiser ta variable $messageNewinsc :)

Il te faut soit ajouter
$messageNewinsc = '';
Soit lors de la première ligne faire une affectation simple plutôt qu'une concaténation :
$messageNewinsc = "\n\nBonjour ".$rec5["login"]."."; // il suffit de remplacer le ".=" par un "=" 
Ceci aura pour effet d'écraser ta variable pour repartir sur un nouveau message, plutôt que de compléter à chaque fois :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 6 Messages

09 juil. 2011, 20:24

Bonjour à tous,

Je tien à remercier Ryle pour son aide à ce sujet.

mon problème est résolu.

Merci à toi

Bonne soirée

David