Sönke Tesch: blaettern

Beitrag lesen

es wird ja so langsam. :-)

Steter Tropfen höhlt den Stein ;)

fputs($d,nl2br(htmlentities($text)));

nl2br --  Inserts HTML line breaks before all newlines in a string

Das heißt also, dass die "\n" -Zeichen im Text drinbleiben; die "<br>" -Tags werden nur hinzugefügt. Damit ist eine Zeile also _nicht_ mit einem Datensatz identisch.

Aua :/ Das kommt davon, wenn man Funktionen das erste Mal verwendet :)
Um meinen Ansatz zu retten, der ja immerhin den Vorteil des extrem einfachen Einlesens hatte, sollte die Zeile also so aussehen:

fputs($d,strtr(nl2br(htmlentities($text)),"\n"," "));

htmlentities() verhindert, daß Dir jemand HTML-Sachen oder gar Javascript in's Gästebuch knallt.

Genau! JavaScript und PHP haben nix darin zu suchen, aber gegen einige HTML-Tags ist nichts einzuweden. Deshalb würde ich den Text auch mit strip_tags($text,$erlaubte_tags) behandeln, bevor ich ihn formatiere und abspeichere.

Hätte den Nachteil, daß man kein HTML mehr schreiben kann (wie hier im Forum), aber das ist natürlich Geschmackssache. Die Warnung bei strip_tags() sollte hingegen nicht ungelesen bleiben: Die Attribute der erlaubten Tags werden nicht verändert. Gerade mit Dingen wie onmouseover kann man immernoch schönes Chaos anstiften.

Nun hat es noch nicht auf Anhieb geklappt, aber dafür nennen sich die Leute ja auch Software-ENTWICKLER und nicht Software-HINSCHREIBER. Sönke hat hier schon ganz schon ent(ge)wickelt. Nimm Dir den Rat zur sauberen Schreibweise mal zu Herzen, Alex.

Jegliche Code-Fehler meinerseits wurden absichtlich eingefügt, um den Lerneffekt zu erhöhen ;)

Gruß,
  soenk.e