eine frage zu htmlentities();
small-step
- php
hallo leute,
wie schon gesagt, eigentlich habe ich kein wirkliches problem, eher eine frage. ich bastel gerade an ein paar formularen rum und nutze zur ausgabe (die eingaben vor der speicherung erst noch einmal gecheckt werden) htmlentities();. allerdings habe ich festgestellt, dass das nicht immer ausreichend ist. gebe ich das lustige zeichen ' ein, muss ich es mit stripslashes(); vor der verunstaltung retten (sonst hab ich nach zwei, drei checks nur noch z.b. small-step\\\\'s schwachsinn). wieso schafft das htmlentities(); nicht von allein?
dankeschön und schöne grüße,
small-step
gebe ich das lustige zeichen ' ein, muss ich es mit stripslashes(); vor der verunstaltung retten (sonst hab ich nach zwei, drei checks nur noch z.b. small-step\\\\'s schwachsinn). wieso schafft das htmlentities(); nicht von allein?
Da hast Du die Sinn und Zweck von htmlentities() falsch verstanden. htmlentities() ersetzt alle Zeichen mit ihren HTML-Umschreibung (sofern eine existiert): Aus ö wird ö, aus & wird &, usw.
Dein Problem liegt woanders: PHP hat die unangenehme Eigenschaft, vor alle Anführungszeichen sowie Rückstriche, die von außen kommen, einen weiteren Rückstrich zu setzen, damit diese Zeichen in Funktionen wie mysql_query() keinen Unsinn anstellen können.
Stört Dich das, schalte in der PHP-Konfiguration (oder der .htaccess, sofern erlaubt) die Option magic_quotes_gpc aus. Wie das geht, steht im Konfigurationskapitel der PHP-Anleitung.
Gruß,
soenk.e
hallo sönke,
Aus ö wird ö, aus & wird &, usw.
ich weiß, verstanden hab ich den sinn von htmlentities() schon, ich versteh nur nicht warum dieses zeichen nicht mit einbezogen wurde.
Stört Dich das, schalte in der PHP-Konfiguration (oder der .htaccess, sofern erlaubt) die Option magic_quotes_gpc aus.
stören tut es mich nicht, wie gesagt, ich bin nur neugierig.
gruß,
small-step
Aus ö wird ö, aus & wird &, usw.
ich weiß, verstanden hab ich den sinn von htmlentities() schon, ich versteh nur nicht warum dieses zeichen nicht mit einbezogen wurde.
Die HTML-Umschreibungen existieren, weil sämtliche Zeichen _außerhalb_ des ASCII-Bereichs (0-127) von Zeichensatz zu Zeichensatz unterschiedlich sind. Da HTML systemunabhängig sein soll, werden 8-und-mehr-Bit-Zeichen mit 7-Bit-Zeichen umschrieben, anstatt sie direkt einzugeben.
Sowohl das einfache Anführungszeichen als auch der Rückstrich befinden sich innerhalb des ASCII-Raums, weshalb keine Umschreibung für diese Zeichen existiert, was wiederum dazu führt, das htmlentities() nichts damit anstellen kann/braucht.
Siehe auch <[link:http://selfhtml.teamone.de/inter/zeichensaetze.htm>].
Gruß,
soenk.e