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.

0

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

0

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

0
HtmlDev 
Beitragsersteller
 23.08.2015, 20:34
@maximilianus7

Hab es jetzt so gelößt:

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

Mit \n.