Sven Rautenberg: Variablenübergabe / maskierte Zeichen

Beitrag lesen

Moin!

als $_POST['beispieltext'] wird " ausgegeben
als $_POST['beispielhidden'] wird " ausgegeben

Und das ist vollkommen logisch!

Der Browser kriegt als HTML-Quelltext im hidden-value " geliefert. Er setzt diese Angabe um in ein einzelnes "-Zeichen. Und schickt dies dann an den Server zurück, der es mit einem Backslash escaped.

Wenn du hingegen etwas in das Eingabefeld eingibst, wird dies _keiner_ Umwandlung durch den Browser unterzogen, sondern kommt 1:1 an.

Wenn du gerne " als Text deines Hidden-Feldes übergeben möchtest, mußt du value=""" reinschreiben.

Genauer gesagt: Wenn du in PHP den Inhalt der Variablen $test in den Value-Bereich schreiben willst, mußt du htmlspecialchars($test) an der jeweiligen Stelle ausgeben.

Also: $test=""";
echo 'value="'.htmlspecialchars($test).'"';

Es hätte auch geholfen, wenn du testweise den Feldtyp von hidden auf text umgestellt hättest. Dann hättest du gesehen, was da genau gesendet wird.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|