Problem mit eval

Ruediger

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgendes Skript:

1.) Formular-Seite - hier kann der User den Inhalt einer HTML in eine Textarea eingeben.

2.) HTML-Mailer der Inhalt der Textarea wird über die Variable $nachricht in die HTMl-Mail eingefügt. Das funktioniert auch soweit.

3.) Damit der User in Schritt 1) auch Variablen eingeben kann, habe ich die Funktion eval ("\$nachricht = \"$nachricht\";"); benutzt.

Ich versende die HTML-Mail in einer while-Schleife. Leider liest er mir die Daten nicht jedesmal aus, sondern nur einmalig?!?

PHP:
...

while  ($row = mysql_fetch_array($result))
{
  $id = $row['id'];	
  $anrede = $row['anrede'];
  $nachname = $row['nachname'];
  $email = $row['email'];
  
  
  eval ("\$nachricht = \"$nachricht\";"); // das Problem!
			

  // HTML-Mail
  $subject = "Eine Mail";
  $message = "";
  $message .="$nachricht\n\n";
			
  if ($debug == 0)
  {
  $sender = "Absender<info@absender.de>";
  $extra = "From: $sender\n";
  $extra .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n\n";

   mail($email, $subject, $message, $extra);
  }

Ich bekomme in der $nachricht jetzt nicht die $anrede aus der while-Schleife sondern immer nur den 1. Wert meiner DB! Jemand eine Idee?
 
ist doch einleuchtend :-)

eval ("\$nachricht = \"$nachricht\";"); // das Problem!

Vorher ist ja im String sows drin: Hallo $anrede $nachname

und nach dem Eval wird das ja umgebaut und im Nächsten Durchlauf
haste im String sowas:

Hallo Herr Rudiger - was soll denn da Eval noch ersetzen :-)

eval ("\$message = \"$nachricht\".\"\\n\\n\";");

so wird es was :-)

die zeile natürlich weg
$message .="$nachricht\n\n";
 
Zuletzt bearbeitet:
Zurück