Hallo,
ich versuche gerade ein Newsletter-Script zu schreiben, das folgendes kann:
Auswahl von Gruppe (aus db), verteilter Versand (also nicht alle eMails auf einmal).
So nun habe ich dazu ein Sript geschrieben. Dieses bekommt ein Array wo die Gruppen drinne stehen. Nun will ich für jeden Array-Eintrag die eMail-Adressen aus der db holen, die Mails verschicken und so.
Das ganze soll aber wie folgt passieren: Eine [coderwiki]Informationen/Variable[/coderwiki] im Script gibt an wieviele eMails geschickt werden sollen. Diese Anzahl wird aus der DB geholt und verarbeitet, danach kommt ein Refresh und die nächsten x Adressen werden verarbeitet.
Das Problem ist (glaub ich), dass man in der Foreach nicht so richtig nen Refresh hinbekommt.
Naja hier mal mein Script, wenn jemand ne Lösung für mein Problem findet, bitte melden.
Fehler tritt erst bei (min) 2 ausgewählten Gruppen auf.
Alles anzeigen
Die ganzen Array sind zur Ausgabe, um zu sehen was eigentlich passiert.
Danke im Voraus für Ideen..
ich versuche gerade ein Newsletter-Script zu schreiben, das folgendes kann:
Auswahl von Gruppe (aus db), verteilter Versand (also nicht alle eMails auf einmal).
So nun habe ich dazu ein Sript geschrieben. Dieses bekommt ein Array wo die Gruppen drinne stehen. Nun will ich für jeden Array-Eintrag die eMail-Adressen aus der db holen, die Mails verschicken und so.
Das ganze soll aber wie folgt passieren: Eine [coderwiki]Informationen/Variable[/coderwiki] im Script gibt an wieviele eMails geschickt werden sollen. Diese Anzahl wird aus der DB geholt und verarbeitet, danach kommt ein Refresh und die nächsten x Adressen werden verarbeitet.
Das Problem ist (glaub ich), dass man in der Foreach nicht so richtig nen Refresh hinbekommt.
Naja hier mal mein Script, wenn jemand ne Lösung für mein Problem findet, bitte melden.
Fehler tritt erst bei (min) 2 ausgewählten Gruppen auf.
Quellcode
- <?php
- session_start();
- include('connect.inc.php');
- $anzahl = 10;
- $f_name = $_SERVER['SCRIPT_NAME'];
- $header = 'From: webmaster@nachneun.de';
- $check = true;
- if(isset($_POST['submit'])){
- $_SESSION['mail_nachricht'] = $_POST['nachricht'];
- $_SESSION['mail_betreff'] = $_POST['betreff'];
- $_SESSION['jahrgang'] = $_POST['jahrgang'];
- }
- #else{
- # die("Bitte Nachricht und Betreff eingeben");
- #}
- foreach ($_SESSION['jahrgang'] as $value) {
- if($value == 0){
- $sql = "SELECT * FROM user WHERE email!=''";
- }
- else {
- $sql ="SELECT * FROM user WHERE email!='' AND jahrgang = $value";
- }
- $result = mysql_query($sql);
- $db_end = mysql_num_rows($result);
- if(isset($_GET['anf'])){
- $anf = $_GET['anf'];
- }
- else{
- $anf=0;
- }
- $end = $anf + $anzahl;
- if($db_end < $anf){
- $anf = $db_end;
- }
- if($value == 0){
- $sql = "SELECT * FROM user WHERE email!='' LIMIT ".$anf.",".$anzahl;
- }
- else {
- $sql = "SELECT * FROM user WHERE jahrgang=".$value." AND email!='' LIMIT ".$anf.",".$anzahl;
- }
- $_SESSION['s'][] = $sql;
- #$sql = "SELECT * FROM mailtest LIMIT ".$anf.",".$anzahl;
- $result = mysql_query($sql) or die(mysql_error());
- while($row = mysql_fetch_assoc($result)){
- $_SESSION['arr'][] = $row['email'];
- #if(!mail ($row['mail'],$_SESSION['mail_betreff'].$row['id'],$_SESSION['mail_nachricht'], $header)){
- # $check=false;
- #}
- }
- if ($anf < $db_end){
- header("LOCATION: $fname?anf=$end");
- }
- else {
- if($check){
- echo "Der Newsletter wurde versandt!<br>";
- echo "<a href=\"sendmail.php\">Zurück</a><br>";
- echo "<pre>";
- print_r($_SESSION['arr']);
- print_r($_SESSION['s']);
- print_r($_SESSION['jahrgang']);
- echo "</pre>";
- session_destroy();
- }
- }
- }// foreach
- ?>
Die ganzen Array sind zur Ausgabe, um zu sehen was eigentlich passiert.
Danke im Voraus für Ideen..