Ich habe dann einmal meine Gästebuchdatei vom Server gelöscht und alles war wieder normal. Als ich dann aber meine Gästebuch Datei vom System wieder hochgeladen habe, fing das gleiche Spiel wieder an. Im übrigen taucht die Meldung nur auf, wenn man das Gästebuch anklickt. Was ist da los, und wie kann man das wieder gerade biegen?
Danke schonmal für eure Hilfe
grüße hokage
Ok ich weiß jetzt woran es liegt: Auf Grund meiner Smileys habe ich in dem Kommentarfeld erlaubt html Code zu generieren und htmlspecialchars() gelöscht. UNd jetzt führen da irgendwelche Hampelmänner JS Scripte aus, so dass diese Meldung aufpoppt.
Jetzt die Frage: WIe kann ich Smileys nutzen, und diese Meldung vermeiden? Am besten wäre es ja, wenn ich in PHP irgendwie bestimme, dass man kein HTML Code, außer die Tags der SMileys, schreiben darf.
Vll. geht es aber auch ganz anders. Danke schoneinmal für eure Hilfe.
Weil ich habe kein Bock, immer in die Datenbank zu gehen und diese Scheiße manuell rauszulöschen.
Am besten ist, du benutzt einfach gar kein HTML in den Beitragsfeldern, sondern nutzt BBCodes. Die werden dann im Hintergrund durch HTMl-Code ersetzt (str_replace oder auch mit regulären Ausdrücken). So wie zum Bleistift hier im HTML-Forum.
Gut, das sagt mir leider gar nichts…
Funktioniert BB-Code mit PHP? Wie codet man das dann? Und in meinem Kommentarfeld, setze ich das htmlspecialchars() wieder hin?
Ich werde mich da auch selber mal schlau machen, aber vll. kannst du mir ja auch noch ein wenig dazu sagen
Das verstehe ich nicht.
Sobald ich doch bei der Ausgabe htmlspecialchars() weglassen, ist HTML Code doch möglich…
Kannst du mir deine Idee vielleicht einmal an einem kurzen Beispiel mit Datenbank anschaulich zeigen?
Denn, wenn das so gehen sollte, dann wäre es sicherlich einfacher als BB-Code.
Ich habe es zwar noch nicht selbst genutzt, glaube aber dass man das mit den BBCode-tags hinbekommen kann
Hier sind die Funktionen in PHP dazu: PHP: BBCode - Manual
[PHP]
$input = $_POST[‚input‘]; //Böse, hier kann HTML drin sein
$input = htmlspecialchars($input); //Gut, HTML ist draußen
$input = str_replace(‚:-)‘, ‚‘, $input); //Gut, HTML ist zwar drin, aber nur das, was du willst!
Das ist wunderbar korrekt, nur ist es in der Regel sinnvoller, die Originaldaten in die DB zu schreiben und erst bei der Ausgabe die Smilies zu ersetzen und mit htmlspecialchars zu arbeiten usw.
Der Vorteil ist, dass es einfacher möglich ist, nachträglich Änderungen an der Formatierung der Ausgabe einzubauen oder die Daten für ein völlig anderes Ausgabeformat aufzubereiten (hier wahrscheinlich weniger relevant).
Danke ffür das Beispiel xD
Jetzt habe ich es auch gecheckt
Ich werde das dann mal ausprobieren. UNd sollte es nicht klappen, dann wende ich mich mal BB Code zu
Danke für die Hilfe
grüße hokage
*edit: @elektrowolf: Hat geklappt Hätte nicht gedacht, dass es funktionieren würde, da HTML ja eigentlich auch in der neuen $input variable nicht erlaubt sein sollte. SOmmit sollte der tag auch nicht funktionieren, aber er tut es xD
Von daher ist alles bestens