Zeilenumbrüche aus Mysql

Grunge

Erfahrenes Mitglied
Hallo Leute,

ich hab nen kleines Problem. Aus einer Textarea werden Texte in meine DB gespeichert. Leider bekomme ich sie nicht mit Zeilenumbrüche ausgegeben.
Ich habe nl2br() probiert, str_replace() . . . .
Ich vermute, dass die SQL - Spalte vielleicht falsch formatiert wurde?! Über Hilfe wäre ich sehr dankbar. Anbei natürlich noch der Code wo die Daten eingetragen werden und wie sie ausgegeben werden..

Vielleicht liegt es auch am $_GET !? Falls dem so ist stellt sich die Frage, kann ich die Datei per Jquery ( so mache ich es nämlich im moment) einbinden? Also der User klickt auf senden - jQuery öffnet das die Datei zum Schreiben, und aktualisiert die Seite.
Speichern:

Code:
$sql="INSERT INTO users_private_messages (usr_private_msg_id, usr_private_msg_abs, usr_private_msg_text, usr_private_msg_date) VALUES ('".$_GET['id']."','".$_GET['abs']."', '".$_GET['pm']."', NOW() )";
$db->query($sql);

Ausgabe:
Code:
   <div class="panel-body">
                                <?php echo str_replace("\n","<br>", $rowpm['usr_private_msg_text']); ?>
                            </div>
 
Wenn du die Zeilenumbrüche umwandeln willst würde ich dir eher zu der Funktion nl2br raten.

Eine andere Variante wäre kein div zu nutzen sondern ein pre-Element.
In diesen werden die Zeilenumbrüche so genutzt.
 
Wieso überträgst du ein Formular mit einer Textarea via GET? Die URL-Limitierung von 2000 Zeichen verbietet eigentlich den Einsatz von Textareas. Ich würde jetzt sogar davon ausgehen, dass EOL-Bytes url-encoded übertragen werden, also %0A für \n, etc. Dann müsstest du erst via url_decode() den GET-Parameter wieder in richtige EOL-Character umwandeln.

Desweiteren kommt es darauf an, wie die EOLs im Textarea sind. Wenn das CRLF ist, funktioniert dein str_replace nur unzureichend. merzi86 hat deshalb nl2br empfohlen, was alle möglichen EOLs unterstützt.

Fazit: Verwende POST und nl2br().
 
Zurück