• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datenbankabfrage liefert zwei Ergebnisse

Körnerbrötchen

Aktives Mitglied
Moin moin,
ich habe momentan ein Problem, bei dem ich verzweifel, weil ich den Fehler einfach nicht finden will. Ich bin gerade dabei für mein CMS ein kleines Newsletterscript zu schreiben. Folgend der Codeauszug, der mich verzweifeln lässt:

PHP:
        $mailtext = $_POST['mailtext'];
        $result = mysql_query('SELECT `forename`, `surname`, `mail`
            FROM `acceptor`') or die(mysql_error());

        while($row = mysql_fetch_object($result)) {
            $vorname = $row->forename;
            $nachname = $row->surname;

            $mailtext = preg_replace('*\{vorname\}*', $vorname , $mailtext);
            $mailtext = preg_replace('*\{nachname\}*', $nachname, $mailtext);

            mail($vorname.' '.$nachname.'<'.$row->mail.'>',"Newsletter: ".$_POST['subject'], $mailtext,"From: Testmailabsender <[email protected]>");
        }
Wenn ich (per Formular übergeben) eine Mail an diesen Codeschnipsel übergebe, so ist im Empfänger der Mail der Vor- und Nachname korrekt. Im Mailtext aber (wo ich ja {vorname} durch den Vornamen ersetzen lasse) kommt immer der erste Vorname der Tabelle. Dabei ist es doch die gleiche Variable!?

Grüße
 
Zuletzt bearbeitet:
Werbung:
Probie rmal str_replace anstatt preg_replace. Bzw. lass dir auch bei jedem schritt mal den mailtext ausgeben.
 
str_replace hat nicht geholfen. Habe ich aber dring gelassen, denn ist ja ausreichend für meine Zwecke und ressourcenschonender.

Der Fehler liegt ja einfach darin, dass beim zweiten Durchlauf der Schleife kein {vorname} mehr im Mailtext enthalten ist, weil es ja schon ersetzt wurde (ich Pflaume). Manchmal steht man halt einfach auf dem Schlauch. Ändern der Variable und gut ist. ;)
 
Werbung:
Zurück
Oben