Speckmann: PHP Per Post variablen im Text übertragen

Hallo,

ich habe ein ungewöhnliches Anliegen. Ich möchte in einem HTML - Formular genauer in einer Textarea sowohl Inhalte als auch variablen für PHP übertragen.

Die Zielseite soll den Inhalt mit ausgefüllten variablen darstellen Bsp: Eingabe Formular:

Uns erwartet heute $wetter, und $wolken am Himmel.

Ausgabe nach der Übertragung via POST

Uns erwartet heute Regenwetter und reichlich Wolken am Himmel.

Meine erste Idee war die Inhalte ganz klar als Variablen zu nutzen ".$wetter." im Post zu übergeben. Nur leider wird bei einem

echo $_POST["inhalt"];

dann folgendes ausgegeben:

Uns erwartet heute ".$wetter."

Also nicht die richtige Lösung. Meine zweite Idee ist, Inhalte zu ersetzen: Eingabe Formular:

Uns erwartet heute ~$wetter~, und ~$wolken~ am Himmel.

Bearbeiten mit

	$text = $_POST["inhalt"];
	
	$text_korrigiert = str_replace('~$', '".$', $text);
	$text_korrigiert = str_replace('~', '."', $text_korrigiert);

Aber auch hier ist das Ergebnis ohne Inhalt sondern nur die Ausgabe:

Uns erwartet heute ".$wetter.", und ".$wolken." am Himmel.

Was mache ich falsch?

  1. Moin!

    Was mache ich falsch?

    Du solltest uns verraten, was Du übertragen willst.

    Soll das aussehen wie:

    wetter:Regenwetter
    wolken:reichlich
    

    oder was ist Deine Vorstellung?

    Jörg Reinholz

  2. Tach!

    ich habe ein ungewöhnliches Anliegen. Ich möchte in einem HTML - Formular genauer in einer Textarea sowohl Inhalte als auch variablen für PHP übertragen.

    Du bekommst von PHP den Text als Daten in $_POST reingereicht. Du möchtest den aber als Code interpretieren. Also musst du ihn in Code wandeln und nicht nur in anderen Text umformen, der rein zufällig wie Code aussieht.

    Aus Text mach Code kann die Funktion eval(). Aber Vorsicht! Damit kann man jeglichen Code eingeben und ausführen. Das ist garantiert nicht, was man neben dem eigentlichen Ziel auch noch will.

    Besser ist es, Platzhalter zu nehmen (zum Beispiel: #wetter#) und die mit strtr() (im Handbuch die zweite Variante) oder str_replace() zu ersetzen.

    dedlfix.