htmlentities und formularfelder?
Onizuka
- php
Hallo
Da zb """ als value in einem input type=text nicht angezeigt wird, habe ich es mit htmlentities() entschärft. Dann funktioiniert es.
Ist das eine offizielle Lösung oder eher Zufall, dass es klappt?
Komischerweise wird """ aber in einer textarea angezeigt, auch ohne es vorher mit htmlentities() zu bearbeiten. ich blicke da voll nicht mehr durch :(
Hi,
Da zb """ als value in einem input type=text nicht angezeigt wird, habe ich es mit htmlentities() entschärft. Dann funktioiniert es.
Logisch. Muß so sein.
Ist das eine offizielle Lösung oder eher Zufall, dass es klappt?
Komischerweise wird """ aber in einer textarea angezeigt, auch ohne es vorher mit htmlentities() zu bearbeiten. ich blicke da voll nicht mehr durch
Wo steht bei einer textarea der Inhalt?
Wo steht bei einem input type="text" der Inhalt?
Fällt Dir ein Unterschied auf?
cu,
Andreas
Klar fällt mir ein Unterschied auf.
Aber was ist jetzt wo korrekt?
Also in Feldern mit value="" sollte ich alles per htmlentities() ersetzen, wenns der Inhalt zwischen den Tags steht nicht?
Was ist da jetzt korrekt?
Moin!
Klar fällt mir ein Unterschied auf.
Aber was ist jetzt wo korrekt?Also in Feldern mit value="" sollte ich alles per htmlentities() ersetzen, wenns der Inhalt zwischen den Tags steht nicht?
htmlentities() wandeln alle für HTML kritischen Sonderzeichen in Entities um. Damit erreicht man, dass die Zeichen in HTML exakt so wiedergegeben werden, wie man sie im String übergibt.
Das bedeutet: Auch wenn man HTML-Quellcode als Text übergibt, wird dieser als Quellcode im Browser dargestellt - und nicht interpretiert!
Bei einem Input-Feld hast du in der Regel ein Problem, wenn du den String """ (dreimal Anführungszeichen) als Value vorbelegen willst:
<input type="text" value="""""> ist irgendwie blöd.
<input type="text" value='"""'> funktioniert aber, weil die äußeren Stringbegrenzer nur einfache Anführungsstriche sind.
<input type="text" value="""""> funktioniert aber immer, egal welche Stringbegrenzer angegeben sind.
In Textareas hast du aber keine Stringbegrenzer. Deshalb kannst du (wie im normalen Fließtext auch) jederzeit Anführungsstriche uncodiert verwenden. Codierte schaden aber auch nicht.
Nur wenn du HTML-eigene Sonderzeichen verwenden willst, müssen diese codiert werden. Also <, > und & (" eigentlich auch). Sowas erledigt htmlspecialchars() ganz gut. Denn was ist, wenn du in deiner Textarea den Text "</textarea>" ausgeben willst?
- Sven Rautenberg
Vielen Dank!
Das nenne ich eine ausführliche Erklärung!
Vielen Dank nochmal, das habe ich jetzt echt verstanden.
Danke!