Gunnar Bittersmann: php in TextAreaElement

Beitrag lesen

@@dedlfix

Eine Textarea hat kein value-Attribut. Der Inhalt muss zwischen die Tags geschrieben werden. Der gezeigte Code ist auch noch anderweitig defekt, nämlich weil der Kontextwechsel nicht beachtet.

TL;DR: $_POST[] unbehandelt in HTML auszugeben ist immer falsch; dass muss durch htmlspecialchars() laufen. (Wenn nicht durch htmlentities(), aber das sollte man i.a.R. nicht tun.)

Bei $n kann es auch nicht schaden. Ob es notwendig ist, hängt davon ab, wo $n herkommt/was da drinstehen kann.

Der gezeigte Code ist aber noch aus einem anderen Grund defekt: weil Markup mit PHP reingeschrieben wird. Das sollte eher so aussehen:

<textarea name="<?php echo htmlspecialchars($n); ?>" required>
	<?php echo htmlspecialchars($_POST[$n]); ?>
</textarea>

oder in Kurzform

<textarea name="<?= htmlspecialchars($n) ?>" required>
	<?= htmlspecialchars($_POST[$n]) ?>
</textarea>

LLAP 🖖

--
“When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory