Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2008, 15h29   #1
Invité régulier
 
Inscription : mai 2005
Messages : 40
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 40
Points : 9
Points : 9
Par défaut [Mail] ob_start() & ob_get_clean() dans une boucle fonctionne qu'une fois.

Tout d'abord désolé s'il y a doublon mais j'ai l'impression que mon premier post n'est pas passé (ça fait 3 heures que je l'ai posté)...

Je gère une petite newsletter et je rencontre quelques problèmes avec ob_start(). Je m'explique :

Je stocke tout d'abord mes mes adresses emails dans le tableau $tab_emails. Je parcours ensuite mon tableau avec un foreach(), et c'est dans cette boucle que je récupère le contenu de mon mail à envoyer (qui se trouve dans un fichier externe), et que je l'envoie à chaque destinataire avec ma classe PHPMailer...

Le problème que je rencontre, est lors de la phase de récupération du mail. J'ai créé la fonction suivante qui me récupère ce contenu : getMail().

Code :
1
2
3
4
5
6
7
8
9
function getMail($var1, $var2, $var3[, $var4, $var5, ...]) {
    ob_start();
    require_once('monMailAEnvoyer.php');
    return ob_get_clean();
}
 
// puis :
 
$monMailHTML = getMail('param1', 'param2', 'param3');

Mon fichier "monMailAEnvoyer.php" contient certaines variables PHP, qui sont remplacées par les valeurs passées en paramètre de ma fonction getMail(). Cela me permet notamment de gérer un traceur.

Bref, lors de la première itération de ma boucle foreach, le contenu du mail est correctement récupéré avec getMail()... Mais lors des itérations suivantes, le contenu est vide. En gros, seule la première adresse email du tableau $tab_emails reçoit le mail normalement. Tous les autres reçoivent un mail vide. Je pense que cela vient de ma fonction getMail, peut-être plus précisément de "ob_get_clean()" que j'emploie sûrement à tort ? j'ai essayé plein d'autres choses mais sans résultat.

Que dois-je faire pour que chacun reçoive correctement le mail ? ob_get_clean() ne peut pas fonctionner dans une boucle ?

merci d'avance pour vos réponses ;-)
seb92500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 16h35   #2
Invité régulier
 
Inscription : mai 2005
Messages : 40
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 40
Points : 9
Points : 9
Réponse sur autre forum : J'ai remplacé "require_once" par "require", et ça fonctionne nettement mieux !! :-)
seb92500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h06.


 
 
 
 
Partenaires

Hébergement Web