appel d'une fonction dans une boucle ne se réalise qu'une fois - PHP - Programmation
Marsh Posté le 12-11-2009 à 17:32:45
Code :
|
Marsh Posté le 12-11-2009 à 17:39:47
oups dsl, voici mon code
Code :
|
Marsh Posté le 12-11-2009 à 17:52:47
ca dépend aussi comment est ta variable $deja au début
en plus dans ta boucle tu recharge le fichier a chaque fois,
tu devrai creer ton object Mail, avec tout dedan et dans ta boucle faire
Code :
|
Marsh Posté le 12-11-2009 à 21:42:44
Merci pour ton aide!
Pourrais-tu me dire à quel moment il y a une recharge de la page dans la boucle?
Je crois que c'est ça qui change tout. en effet, j'ai fait un echo des variables et j'ai vu qu'à la deuxième itération tous les $_POST sont vides.
Marsh Posté le 12-11-2009 à 23:29:06
au moment ou tu fais move_uploaded_file, en plus cette fonction marche qu'un seul fois, puisque qu'elle surpime le fichier
Marsh Posté le 13-11-2009 à 09:25:56
tu pourrais pas refaire l'indentation, parce que là, c'est pas facile à lire ton code.
Le premier truc que je vois, c'est que tu fais à chaque tour de boucle un include('fonctionMail.php'); ce qui sert à rien et pourrait être la cause de ton pb.
Marsh Posté le 13-11-2009 à 15:44:58
Bjr,
Voici la seule solution que j'ai trouvé pour l'instant c'est mettre le unlink après la boucle foreach.
Vous pensez que ça a un incident?
Merci
Marsh Posté le 13-11-2009 à 16:04:51
non, la bonne solution c'est de faire ce que t'as dit stealth35 : tu prépare le mail et son contenu en dehors de la boucle et après tu fais un boucle sur les adresses mails pour l'envoi
Marsh Posté le 12-11-2009 à 17:19:00
Bonjour,
Je crée en ce moment un formulaire d'envoi à plusieurs destinataires avec pièce jointe. J'ai utilisé la fonction ici:
http://www.phpcs.com/telecharger.aspx?ID=50607
Donc l'utilisateur se connecte sur www.monsite.com. Il remplit le formulaire d'envoi et les gens du groupe A comme destinataires.
Mon script récupère les mails dans la base de données dans la table groupe A et les stock dans un array; Puis il envoie les mails :
foreach($deja as $mesmails){//envoyer un mail à chaque email présent dans le tableau
if(strlen($mesmails)<1){
//NE RIEN FAIRE
}
else{
echo $mesmails;
/*************************************************************************/
include('fonctionMail.php');//c'est là que se trouve les fonctions que j'utilise
$dest=$mesmails;
$reponse=StripSlashes("Votre Message a été envoyé avec succè" );
$subject="{$_POST['subject']}";
$msg="{$_POST['msg']}";
$email="{$_POST['email']}";
$NomFichier="{$_FILES["NomFichier"]}";
$NomFichier_name="{$_FILES["NomFichier"]["name"]}";
$email1="";
$priority="1";
$subject=StripSlashes($subject);
$msg=StripSlashes($msg);
$msg="Message :
$msg";
$m= new Mail; // create the mail
$m->From( $email );
$m->To( $dest);
$m->Subject( $subject );
$m->Body( $msg); // set the body
if ($email1!="" ) {
$m->Cc( $email1);
}
$m->Priority($priority) ;
if ($NomFichier_name!="" ) {
//copy($NomFichier,"../upload/".$NomFichier_name);
//chargement du fichier
$uploaddir = '../upload/';
$uploadfile = $uploaddir . basename($NomFichier_name);
//copy($NomFichier,"../upload/".$NomFichier_name);
//
if (move_uploaded_file($_FILES['NomFichier']['tmp_name'], $uploadfile)) {
echo "Le fichier est valide, et a été téléchargé
avec succès. Voici plus d'informations :\n";
} else {
echo "Attaque potentielle par téléchargement de fichiers.
Voici plus d'informations :\n";
}
//
$m->Attach( "../upload/".$NomFichier_name, "application/octet-stream" );
}
$m->Send();
if ($NomFichier_name!="" ) {
Unlink("../upload/".$NomFichier_name); }
echo "$reponse";
/**************************************************************************/
}
}
Le problème c'est que le mail est envoyé au premier mail trouvé puis cela s'arrête.
Auriez vous une idée? Merci pour votre aide.
Message édité par begin le 12-11-2009 à 17:19:59