Zeilenumbruch im <textarea> mit in die Datenbank schreiben?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

php Funktion: nl2br()


HtmlDev 
Beitragsersteller
 23.08.2015, 20:30

Ok,

aber ich glaube das Problem liegt nicht beim auslesen sondern beim schreiben.

Man müsste es irgendwie schaffen, dass beim schreiben für jeden Zeilenumbruch "\r\n" geschrieben wird.

mittels

\r\n

oder du legst alles in <html> ab



HtmlDev 
Beitragsersteller
 23.08.2015, 16:45

Ich habe das <textarea> in einem Forum.
Wäre dann blöd für die Leute wenn diese immer \r\n schreiben müssten

also wenn das so ist, dass du inem einem html-formular eine textarea hast und dann mittels php-mysql den inhalt wie von $_POST geliefert in die datenbank schreibst - dann müssten die die durch den benutzer mittels ENTER eingegebenen zeilenumbrüche auch in der datenbank stehen. ich mache keine änderungen an den daten, verwende aber prepare/execute mit PDO. aber auch mit mysql_real_escape_string dürfte es kein problem darstellen.

bist du sicher das die newlines nicht in der datenbank sind? schau mal mit phpmyadmin nach.

gibst du den inhalt nachher als normalen html-text aus? da werden zeilenumbrüche wie leerzeichen behandelt. in diesem fall auch textareas verwenden mit attribut readonly.


HtmlDev 
Beitragsersteller
 23.08.2015, 20:08

Also das textarea wird ganz normal in die DB geschrieben. In der Tabelle werden auch keine Zeilenumbrüche bzw. <br> angezeigt.

Später lese ich den Text wiefolgt aus:

<?php
$sql = "SELECT * FROM forum_beginner
WHERE forum_beginner.id=".intval($_GET['id']);

$res = mysqli_query($mysql_connection, $sql);

$row = mysqli_fetch_assoc($res);?> 

<?php echo $row['name']; ?><?phpecho "Geschrieben von ";
echo $row['author'];echo "Am ";
echo $row['date'];echo " Um ";
echo $row['time'];?>

<?php echo $row['content']; ?>

Das ganze Html hab ich mal weggelassen

HtmlDev 
Beitragsersteller
 23.08.2015, 20:34
@maximilianus7

Hab es jetzt so gelößt:

<?php echo nl2br($row['content']); ?>

Mit \n.