Hallo :-)
Ich habe einen Paidmailversand programmiert und im Adminbereich werden gebucht Mails verschickt. Bisher war es so das alles in einer ganz normalen while schleife war und wenn ich den Button "verschicken" klicke ruft das Script die schleife auf und versorgt die Empfänger mit Mails. Dann bekomme ich währen dem Versand eine weiße Seite zu sehen und wenn alles durch ist die Auflistung wer eine Mail bekommen hat. Das ganze wollte ich jetzt mit flush aufwerten um den aktuellen Mailversand beobachten zu können. Nur hab ich schnell festgestellt das das mit einer while schleife nicht funktioniert. In einer einfache for schleife mit zahlen von z.B. 1-10 die im Sekundentakt aufgezählt werden klappt es wnderbar.. aber in meiner while schleife ändert sich nix.
Das ist mein Quelltext:
***EDIT***
also muss nicht flush sein.. wenn jemand eine gute Ajax lösung kennt wäre das auch hilfreich, wobei da benötige ich dann etwas hilfe, da ich ajax nicht so kann
Ich habe einen Paidmailversand programmiert und im Adminbereich werden gebucht Mails verschickt. Bisher war es so das alles in einer ganz normalen while schleife war und wenn ich den Button "verschicken" klicke ruft das Script die schleife auf und versorgt die Empfänger mit Mails. Dann bekomme ich währen dem Versand eine weiße Seite zu sehen und wenn alles durch ist die Auflistung wer eine Mail bekommen hat. Das ganze wollte ich jetzt mit flush aufwerten um den aktuellen Mailversand beobachten zu können. Nur hab ich schnell festgestellt das das mit einer while schleife nicht funktioniert. In einer einfache for schleife mit zahlen von z.B. 1-10 die im Sekundentakt aufgezählt werden klappt es wnderbar.. aber in meiner while schleife ändert sich nix.
Das ist mein Quelltext:
PHP-Code:
if($go == paidmail_send){
$resultadmin = mysql_query("SELECT url, seitenname, email FROM `admin`");
$rowadmin = mysql_fetch_row($resultadmin);
$siteurl = $rowadmin[0];
$sitename = $rowadmin[1];
$adminemail = $rowadmin[2];
$resultb = mysql_query("SELECT * FROM `paidmails` where mailid=$paidmail_id");
$myrow = mysql_fetch_row($resultb);
if (get_magic_quotes_gpc()) {
$decodierter_text = stripslashes(base64_decode($myrow[5]));
} else {$decodierter_text = base64_decode($myrow[5]);}
ob_end_flush();
echo"...Bereite den Mailversand vor....<br>";
$result = mysql_query("select name, prename, id, email from accounts WHERE paidmails='1' ORDER BY rand() LIMIT $myrow[8]");
flush();
sleep(3);
echo"...Starte Paidmailversand....<br><br>";
$ok=1;
while($zeile=mysql_fetch_row($result)) {
$text=$decodierter_text;
mail("$zeile[3]","Paidmail: $myrow[4]","Paidmail by [url]www.domain.de[/url] - Das Bestätigen dieser Mail, durch klicken des Bestätigungslinks am Ende dieser Paidmail, wird dir vergütet! \n\n$text \n\n\n |------Bestätigungslink ($myrow[7] Punkte Vergütung)------|\n $siteurl/paidmail.php?userid=$zeile[2]&mailid=$myrow[0]&pkey=$myrow[14]\n\nAOL User klicken bitte bitte folgenden Bestätigungslink:\n<a href=\"$siteurl/paidmail.php?userid=$zeile[2]&mailid=$myrow[0]&pkey=$myrow[14]\">$siteurl/paidmail.php?userid=$zeile[2]&mailid=$myrow[0]&pkey=$myrow[14]</a>\n\n***Diese Paidmail ist kein Spam. Der Empfang von Paidmails kann jederzeit im Mitgliederbereich abgestellt werden","From: $sitename <$adminemail>");
echo" $ok/$myrow[8] | Verschickt an : <b>$zeile[0]</b> $zeile[3]<br>";
$ok++;
ob_end_flush();
flush();
sleep(1);
}
$inserttime = time();
$ask= "UPDATE `paidmails` SET datumfree='$inserttime' WHERE mailid='".$paidmail_id."'";
$result = mysql_query($ask) or die(mysql_error());
echo"<div align=\"center\"><b>ALLE AUFTRÄGE VERSCHICKT!</b></div>";
include("../templates/admin-footer.txt");
die;
}
***EDIT***
also muss nicht flush sein.. wenn jemand eine gute Ajax lösung kennt wäre das auch hilfreich, wobei da benötige ich dann etwas hilfe, da ich ajax nicht so kann
Kommentar