46356
Goto Top

HTML Code bis auf br verbieten?

Guten Tag!

Wie ist es möglich HTML Code im Gästebuch zu verbieten; mit ausnahme von <br> und </ br>?
Zur Zeit mache ich es über die Funktion:
htmlentities($string, ENT_QUOTES)...

Kann ich die 2 br's direkt in die Funktion integrieren oder brauch ich dazu eine neue (von mir unbekannte) Funktion?

Liebe Grüße,
Alexander

Content-Key: 87407

Url: https://administrator.de/contentid/87407

Printed on: April 18, 2024 at 04:04 o'clock

Member: LordGurke
LordGurke May 12, 2008 at 08:07:53 (UTC)
Goto Top
Sollen die Benutzer die <br>s angeben?
Ich würde lieber zu nl2br() greifen, damit würden normale Zeilenumbrüche in <br /> (ja, leider XHTML) umgewandelt und du bräuchtest diese Ausnahme nicht - nl2br() müsste natürlich _nach_ htmlentities angegeben werden.
Mitglied: 46356
46356 May 12, 2008 at 10:13:22 (UTC)
Goto Top
Hallo myxi89!

Ich verwende im Gästebuch auch nl2br()...
Die Einträge werden dann in der Datenbank gespeichert und sehen so aus:
Hallo! </ br>
Ein Zeilenumbruch </ br> ... usw...

Wenn ich es ausgebe, wird mir der formatierte Text angezeigt...
... schreibt aber ein Benutzer HTML Code in das Gästebuch wird dieser
auch ausgefürht....

...nun möchte ich aber HTML Code verbieten.
Jedoch sollten die </ br> trotzdem ausgeführt werden...

Liebe Grüße,
Alex
Member: LordGurke
LordGurke May 12, 2008 at 11:02:31 (UTC)
Goto Top
Du könntest vorher mit str_replace() alle <br>'s durch \n ersetzen lassen, htmlentities() drüberlaufen lassen und dann wieder nl2br() anwenden.
Es wäre darüberhinaus wie du siehst eine praktikable Lösung, die Daten vom Gästebuch mit \n in der Datenbank zu speichern und erst beim Auslesen mit nl2br() wieder HTML-Zeilenumbrüche einzusetzen - also die Daten ohne diese Vorbehandlung zu speichern.
(Das soll aber nicht heißen, dass die Sachen vollkommen unbehandelt in die DB kommen, mysql_real_escape_string() etc... sollten vorher natürlich noch angewandt werden!)
Member: Creator1981
Creator1981 May 12, 2008 at 18:39:57 (UTC)
Goto Top
Also ich würde folgende funktion verwenden:

strip_tags ( string $str [, string $allowable_tags ] )

Nachlesen kannst du hier:

http://de2.php.net/manual/de/function.strip-tags.php.

Da stehen auch alle weiteren Funktionen die du verwenden kannst bzw solltest.