Mir ist noch was tolles eingefallen, was ich unbedingt wissen muss Und zwar werden meine ganzen Zeilenumbrüche nicht übernommen, also wenn ich
"Hallo
das ist ein eintrag"
schreibe, schreibt er alles hintereinander weg. Warum das so ist, ist mir klar. Und dass man das nun angeblich mit der funktion nl2br() ändern kann, hab ich auch gelesen.
Wenn ich jetzt aber sage $_POST[kommentar] = nl2br($_POST[kommentar]);
tut er überhaupt nix ._. Warum, was muss ich tun, damit das geht??
Was meinst du mit gar nix? Übernimmt er die Zeilenumbrüche nicht, oder wird der String geleert? Falls zweites eintritt so scheint es, dass kein Array falsch adressiert wird, da die Variablen in der Regel wie folgt adressiert werden: $Array['Schluessel'] und die ' fehlen bei dir irgendwie.
Was meinst du mit gar nix? Übernimmt er die Zeilenumbrüche nicht, oder wird der String geleert? Falls zweites eintritt so scheint es, dass kein Array falsch adressiert wird, da die Variablen in der Regel wie folgt adressiert werden: $Array['Schluessel'] und die ' fehlen bei dir irgendwie.
...
Er übernimmt die zeilenumbrüche nicht. Er schreibt trotzdem alles hintereinander >_>
Hab die einfachen Anführungszeichen ergänzt, tut sich aber trotzdem nix ._."
Ich kenn mich mit PHP zwar auch nicht so gut aus, aber was passiert wenn du den Inhalt direkt in eine Variable schreibst: $variable = nl2br($_POST[kommentar]);
Und diesen Inhalt dann weiterverwendest, falls das funktioniert.
Edit: Hab's gerade mal ausprobiert, bei mir zumindest funkioniert es.
Hab jetzt meinen Fehler gefunden, musste die Zeile nur an eine etwas andere Position packen, dann gings, dann gehts auch mit $_POST[kommentar]
Danke trotzdem
Also was in die DB geschrieben werden soll nicht $_POST sondern dann $kommentar verwenden
...
Ganz so einfach geht das nicht
Es ist viel wichtiger seine Strings entsprechend zu bearbeiten bevor sie in die Datenbank eingetragen werden, entweder in dem MagicQuotes im Server aktiviert sind, oder in dem man sie per Hand mit mysql_real_escape_string bearbeitet.
Ich hab nochmal ne Frage
Für son tolles Projekt an unserer FH soll ne Website erstellt werden. Da haben wir mein Gästebuch eingebaut und jetzt soll so ein schöner Wortfilter da mit eingebaut werden, der den Text überprüft, ob irgendwelche Wörter da drinstehen, die da nicht reingehören sollen. Beschimpfungen und dergleichen.
Wir haben das ganze jetzt so gelöst, dass wir die Wörter in ein Array gepackt haben, und das wird dann mit dem Text verglichen. Problem an der Sache ist: wenn ich "schwein" im Array stehen habe, im Text aber SchWEiN steht, dann erkennt er das nicht, wegen unterschiedlicher Groß- und Kleinschreibung. (ich muss an dieser Stelle mal hinzufügen, dass ich das selbst noch nciht getestet hab, weil ich mich vorher mit was anderem beschäftigt habe und jetzt eben nem Komilitonen helfen soll.)
Angeblich solls unter PHP 5 wohl eine Funktion geben, die dafür da ist, dass es egal ist, wie es geschrieben ist, erkannt wirds wohl trotzdem. Wie realisiert man aber das ganze dann unter PHP4, wos (laut denjenigen, die sich schon weiter darum gekümmert haben) keine solche Funktion gibt?
Wäre etwas viel Arbeit, für jedes wort sämtliche mögliche Schreibweisen ins Array aufzunehmen?!
Das dürfte zum Beispiel mit preg_replace funktionieren (gibt's auch in PHP4). Die Funktion erlaubt das Suchen nach regulären Ausdrücken und natürlich das Ersetzen derselben. Um "Schwein" in dem String $text zu ersetzen wäre folgendes nötig:
Dabei ist /schwein/i der reguläre Ausdruck, schwein ist der Suchstring und i ist der Modifier, der sagt, dass die Groß-/Kleinschreibung unwichtig ist. Die Sternchen sind natürlich der Text, mit dem ersetzt wird.