Hey, mit der oberen Teil wollte ich nur prüfen, ob nl2br bei dir die Richtige Lösung liefert, als die Nl2 wirklich zu <br>s macht. Habe cih zwar nicht daran gezweifelt, ich möchte dir aber zeigen, wie ich die Fehlerfindung betreibe. Denn Fehlerfindung ist wirklich ein ganz wichtiges Kapitel, wenn du später bei komplizierteren Scripts nicht tagelang an einer ";" sitzen musst. Ehrlich ich habe schon so viel erlebt, dass cih mir fast die Haare gerauft habe, weil ich irgendwo ein Semikolumn vergessen habe. Oder einfach ein logisches Fehler, der noch schwerer aufzuspüren ist, weil es gar keine Fehlermeldung angezeigt wird.
<?php $_POST['Nachricht'] = nl2br(htmlentities($_POST['Nachricht'])); ?>
Eiegtnlich sehe ich in deinem Ansatz keinen Fehler. Ich weiss jetzt auch nicht warum er die <br> wegnimmt bei dir. Ich habe die Aufgabe anfangs auch falsch verstanden.
Versuch das mal in zwei Schritten:
$Nachricht = htmlentities($_POST['Nachricht']);
$Nachricht = nl2br($Nachricht);
Ich würde aber wirklich die strip_tags benutzen, wenn du es "sicherer" haben willst. Damit wird alles HTML ausser <br> weggelöscht:
$_POST['Nachricht'] = nl2br($_POST['Nachricht']);
$_POST['Nachricht'] = strip_tags($_POST["Nachricht"],"<br>");
Aber mal ne ganz andere Frage: übergibst du die Nachricht aus einem Formular? Wieso denn das, wenn du es aus Datenbank holst? Oder willst du, dass die die über Formular eingegebene NAchricht in die DB geschrieben wird? Dann brauchst du die nl2br eigentlich nicht an dieser Stelle. Ich verwende nl2br nur bei Ausgabe. Die Eingabe speichere ich so wie sie auch im Formular eingegeben wird.
Was die Sicherheit in dem Falle angeht, muss du auch die SQL Injections irgendwie abfangen. Nur so als ein weiteres Informationsthema für dich
Die Lebenssonde