Variable in Textfeld wiedergeben?

Extremniki

Erfahrenes Mitglied
Hallo Ihr's! Hab mal wieder ne Frage.

Ich möchte ein Formular erstellen, in dem mehrere Textfelder schon mit Variablen vorausgefüllt sind. Im konkreten Beispiel:
Ich habe ein Newsletterscript. In meinem Adminbereich habe ich da eine Textarea, die schon einen gewissen Teil vorausgefüllt ist. Nun möchte ich, dass z.B. der Name des Empfängers per Variable dort drin steht und bei jedem Empfänger also auch sein jeweiliger Name in der Mail steht. Ich habe mal irgendwo sowas schon gesehen, find's aber nicht wieder. Da stand im Textfeld "%%NAME%%" oder sowas. Jedoch ergibt das für mich keinen Sinn (NAME ist wahrschienlich die Variable)!

Kann mir da einer weiter helfen? Ich brauch ja lediglich nur die Befehle, so wie "echo" das sonst macht!

Gruß Nikolaj
 
???

Ja da gibts doch noch gar keinen Code zu.
Ich möchte ja auch nur wissen, wie man Variablen
in textfeldern wiedergeben kann.
 
PHP:
<input type="text" name="var" value="<? echo $var ?>">

dazu muss $var aba bereits vorher bereits definiert sein ;)
 
Zusatzfrage:

Für einzeilige Textfelder ist das alles mittlerweile logisch,
nur wie mache ich das bei mehrzeiligen Textfeldern, wenn ich mehrere Variablen darin wiedergeben möchte?

Ich möchte nämlich zum Einen die Mitglieder meines Newsletter mit Namen anreden und zum Andreren deren Emailadressen angeben.

Kann mir den Trick einer verraten?
 
Hmja, also ich vermute mal du willst eine Art Template erstellen. Da gibt´s natürlich mehrere Ansätze, aber ich geh jetzt mal auf den von dir vorgeschlagenen ein.

Desweiteren vermute ich jetzt mal, dass du die Subscriber deines Newsletters in einer Datenbank, einem Textfile oder sonstwo gespeichert hast und das Auslesen kein Problem darstellt.

PHP:
/* Variablen:
* Aus dem Formular:
*  $newsletter_betreff
*  $newsletter_text
* Aus der Datenquelle, ändert sich bei jedem Schleifendurchlauf:
*  $empfaenger_name
*  $empfaenger_email
*/
// Fehlt hier: Schleifenkopf (bei einem Array z.B. foreach,
// bei MySQL z.B. per while, je nachdem)
{
// Fehlt hier: evtl. Initialisierung der Schleifenvariablen,
// wenn nicht schon im Schleifenkopf geschehen
  $newsletter_text = str_replace("%name%", $empfaenger_name, $newsletter_text);
  $newsletter_text = str_replace("%email%", $empfaenger_email, $newsletter_text);
  mail($empfaenger_email, $newsletter_betreff, $newsletter_text);
}

In deine Textarea des Formulars, das an die Datei, aus der obiger Quelltext stammt, geschickt wird, schreibst du dann ganz einfach an die gewünschten Stellen "%name%" bzw. "%email%" (ohne Anführungszeichen, versteht sich). str_replace ersetzt dann diese Teile des Strings durch den jeweiligen Wert.

Hoffe mal ich hab damit das Problem richtig erfasst und hilfreich erläutert :)
 
Jau, genauso wollte ich das haben. Hab das mit den %-Dingern schonmal irgendwo gesehen, aber konnte es nicht umsetzen.
Werde jetzt mal loslegen und mein Script bearbeiten.

Danke!
 
So, jetzt hab ich das zwar alles eingefügt, jedoch klappt es noch nicht, die %name% werden nicht ersetzt, sondern direkt auch wieder so in der email angezeigt.

hier mal mein code der send.php:

PHP:
  $fp = fopen("email.txt","r");
if ($fp)
{
    while(!feof($fp))
    {
    $zeile = fgets($fp,100);
    echo"Inhalt:$zeile <p>";
	 
	  $text = str_replace("%name%", $name, $text);
  	$text = str_replace("%email%", $email, $text);
    }
fclose($fp);
}
else
echo "Datei wurde nicht gefunden";
$email = join('', file("email.txt"));
$email_array = explode("|-|",$email); 
$absender = "meineabsender@email.de"; 
$text = "$nachricht"; 

foreach($email_array as $empfaenger)
  mail(trim($empfaenger), $betreff, $text,"From:$absender");

watt is denn da nun noch falsch???
 
Zurück