HTML-Code deaktivieren

M.t.B.
Hi,

kennt ihr einen Weg, um den HTML-Code in meinem PHP-Gästebuch zu deaktivieren?
(mit Außnahme von gut 1 Dutzend If-Else-Abragen)
daHooligan
du könntest alles zwischen spitzen Klammern inklusive der Klammern an sich löschen....

ODER: Pack' alle html-Befehle in ein Array/eine DB und prüfe, ob ein Teil des Beitrags, der evtl spitze Klammern enthält äTeil dieses Arrays ist
M.t.B.
Das wäre eine Möglichkeit, aber wenn jemand eine spitze Klammer "< oder >" verwendet, ohne einen HTML-Code zu schreiben?
chr-fritz
Du kannst die HTML Sonderzeichen in den HTML Code umwandeln lassen. (z.B. aus & wird &amp; aus " wird &quot; usw.)

Dafür gibt es die PHP Funktionen "htmlspecialchars()"

www.php.net/htmlspecialchars
M.t.B.
Ob du es glaubst, oder nicht, auf die gleiche Idee bin ich auch gekommen, nur ich habe str_replace genommen:

php:
1:
2:
3:
4:
5:
6:
7:

<?php
$kommentar=str_replace("<","&lt;",$kommentar);
$kommentar=str_replace(">","&gt;",$kommentar);
$kommentar=str_replace('\"','"',$kommentar);
?>
ThiefMaster
Zitat:
$kommentar=str_replace('\"','"',$kommentar);
lol das bring ja mal richtig iel Zunge raus

nehmt einfach htmlspecialchars Augenzwinkern
M.t.B.
Zitat:
lol das bring ja mal richtig iel


Augen auf ThiefMaster:

Da steht: ' \ " ' , ' " ' , $kommentar)

Nicht " ", "",$kommentar)
M.t.B.
Ich könnte natürlich auch:

php:
1:
2:
3:
4:
5:

<?php
$kommentar=stripslashes($kommentar);
?>


schreiben.
Hanfling
Zitat:
Original von M.t.B.
Ob du es glaubst, oder nicht, auf die gleiche Idee bin ich auch gekommen, nur ich habe str_replace genommen:

php:
1:
2:
3:
4:
5:
6:
7:

<?php
$kommentar=str_replace("<","&lt;",$kommentar);
$kommentar=str_replace(">","&gt;",$kommentar);
$kommentar=str_replace('\"','"',$kommentar);
?>


Gibt trotzdem HTML Codes die gehen.
M.t.B.
Welche denn bitte?
Hanfling
code:
1:
&nbsp;&raquo;&euml;

Und wie die auch heißen mögen. Sind für mich trotzdem noch html codes. Ich finde eh einfach angenehmer etwas einfach durchs Prinzip ausschließen, als durch irgendwelche komischen Überprüfungen, die sogar die Nebenwirkungen besitzen, verschiedene Zeichen auszuschließen bei den Nutzungsmöglichkeiten.
M.t.B.
Das sind für mich keine HTML-Codes sondern HTML-Sonderzeichen, welche umschrieben wurden.

Ganz nebenbei:
Was bewirken die Zeichen bitte?
Als Ergebnis kommt doch nur

code:
1:
 ȑ


raus.
daHooligan
eben das meint er ja...
es ist relativ egal, was rauskommt, das schlimmste ist, DAS was rauskommt.
Er will eben eine Möglichkeit, alle html-Sachen auszuschließen.
M.t.B.
Nein, ich will eigentlich nur die HTML-Tags ausschließen, was ich ja erreicht habe. Wenn irgendjemand irgendwelche HTML-Sonderzeichen (de-)codiert ist mir das eigentlich egal. Der Surfer soll halt nur keine Tags erstellen können.
daHooligan
also dann wäre ich für str_replace...
abe rich weiß net, wie das ist, wenn man die spitzen Klammern als &... schreibt, ob das dann als html-Code interpretiert werden ann...
M.t.B.
Du meinst so:

code:
1:
&lt;hr size="1"&gt;
M.t.B.
Funktioniert nicht!

Als Anzeige erscheint:

code:
1:
<hr size="1">
Hanfling
Es mag ja toll sein dem user zu ermöglichen Sonderzeichen der Sprache durch Codes auszudrücken, aber ich persönlich bevorzuge die Variante wo anhand von Zeichensatzerkennung etc. sowas eh in sowas umgewandelt wird
M.t.B.
Hä?

Zitat:
sowas eh in sowas umgewandelt wird


Was soll denn das heißen?
Hanfling
Sondernzeichen werden mit htmlspecialchars() halt in die HTML Codes umgewandelt.