dedlfix: Variablen aus Eingabefeld lesen...

Beitrag lesen

echo $begrüßung;

$text = $_POST['text'];
echo $text;

echo $_POST['text']; macht das gleiche, nur dass es nur eine Zeile braucht.

Wie kann man es erreichen, dass die Veriablen trotzdem verarbeitet werden (bla), und nicht nur als bloßer Text ($...) dastehen?

Das was dir da im $_POST-Arrab bereitgestellt wird sind bereits fix und fertige Strings. Das Ersetzen von Variablennamen durch ihren Inhalt erfolgt nur beim Parsen, wenn aus PHP-Code etwas Ausführbares gemacht wird. Möchtest du diesen Vorgang zur Laufzeit ausführen, musst du eval() bemühen. Das ist nicht in jedem Fall eine gute Idee, weil dadurch ohne weitere Prüfung der Eingabedaten auch beliebiger anderer Code untergeschoben und ausgeführt werden kann. Anstatt eine solche Prüfung einzubauen, kannst du gleich eine andere Alternative wählen, die insgesamt weniger aufwendig ist.

Beispielsweise könntest du aus einem solchen Muster wie "Ein bestimmtes Zeichen gefolgt von Buchstaben gefolgt von einem Nichtbuchstaben" die "Buchstaben" durch den Inhalt einer Variablen, sofern vorhanden, austauschen lassen. Vor der Ausgabe des fertiggestellten String in ein HTML-Dokument sollte der String noch durch htmlspecialchars() gejagt werden, damit kein ungewollter HTML-Code (mit vielleicht eingebettetem Script-Code) zur Ausführung kommt.

echo "$verabschiedung $name";