Zeilenumbruch <br>

DeeJay-Luke

Mitglied
Moin,
ich habe seit paar stunden ein problem mit meinem newsscript
wenn ich in die textarea was reinschreibe und mit enter in die nächste zeile will zeigt er mir das nicht an

ich habe auch die FAQ und sonstige beiträge gelesen und es hat mir leider nicht weiter geholfen

denn habe ich aber wohin kommt er?
Code:
$newstext = str_replace("\r", "<BR>", str_replace("\r\n", "<BR>", $newstext));

hier mein postnews.php
Code:
<html>
<body>

<?PHP
if ($button==" Eintragen ") {

            if (($newstitle != "") && ($newstext != "")) {
                $newstext  = str_replace("\n", "<br>", $newstext);
                $newstitle = addslashes($newstitle);
                $newstext  = addslashes($newstext);
		$user  = addslashes($user);
		$date  = addslashes($date);
                $time = time();
                } else {
                    print "Die Daten wurden eingetragen<br>\n";}

include ("db.php");
mysql_query("INSERT INTO 
xsamplenews(newstitel,date,time,user,newstext)VALUES('$newstitel','$date','$time','$user','$newstext')");
mysql_close();
?>

<a href="adm.menu.php?ver=db_news&ziel=postnews">neuer Eintrag</a><br>
<?
}
else {
?>
<form method="post" action="adm.menu.php?ver=db_news&ziel=insert">
		<input STYLE="BORDER: 1px #cccccc solid;background-color:#00032D;color:#ffffff" SIZE="20" solid" type="text" name="newstitel" value=""> - News Titel<br>
		<input STYLE="BORDER: 1px #cccccc solid;background-color:#00032D;color:#ffffff" SIZE="20" solid" type="text" name="date" value="<?PHP echo date("d.m.Y") ; ?> "> - Datum<br>
		<input STYLE="BORDER: 1px #cccccc solid;background-color:#00032D;color:#ffffff" SIZE="20" solid" type="text" name="time" value="<?PHP echo date("G:i", time());?> "> - Uhrzeit<br>
		<input STYLE="BORDER: 1px #cccccc solid;background-color:#00032D;color:#ffffff" SIZE="20" solid" type="text" name="user" value=""> - Username<br>
		<textarea STYLE="BORDER: 1px #cccccc solid;background-color:#00032D;color:#ffffff;background:url(gfx/gg.gif);background-repeat:no-repeat;background-attachment:fixed" SIZE="20"  solid" name="newstext" cols="50" rows="10"></textarea><br>
	<input type="submit" name="button" value=" Eintragen ">
</form>
<?
}
?>

</body>
</html>
 
Also normalerweise kommt das Ersetzen der \n durch <br> erst beim Auslesen des Textes, da du sonst unnötige Umwandlungsschritte, bei der Editierfunktion deiner News machen müsstest...

PHP:
$query=mysql_query("SELECT * FROM...");
while($data=mysql_fetch_array($query))
{
$data[text]=str_replace("\n", "<BR>", $data[text]);

//Ausgabe oder so...
}
 
habe in die ausbage (news.php) reingepackt aber funtz nicht

news.php
Code:
<table style="width:500px" border="0">
	<?PHP 
		include ("db.php");
		$query = "SELECT * FROM xsamplenews ORDER BY id DESC";
		$result = mysql_query($query);

		while ($line = mysql_fetch_array($result)) 
	{ 
		$newstext[newstext]=str_replace("\n", "<BR>", $newstext[newstext]); 
	?>
	<tr style="height:20px">
		<td style="font-size:12px;font-family:verdana;color:#ffffff"><b><?=$line[newstitel]?></b></td><!-- News Überschrift -->
	</tr>
	<tr>
		<td style="font-size:8px; font-family:verdana; color:#cccccc; text-align:left; height:20px"><?=$line[date]?>&nbsp;(<?=$line[time]?>)&nbsp;Postet by <?=$line[user]?>
		<hr size="1" width="100%" noshade color="#0B2843" align="center"></td><!-- Datum (Uhrzeit) postet by User -->
	</tr>
	<tr>
		<td style="vertical-align:top"><?=$line[newstext]?></td><!-- Text Area -->
	</tr>
	<tr>
		<td style="font-size:8px; font-family:verdana; color:#cccccc; text-align:right; height:15px">
		<hr size="1" width="100%" noshade color="#0B2843" align="center">
		&copy;2004 www.DeeJay-Paradise.de</td>
	</tr>
	<tr>
		<td style="height:15px"></td>
	</tr>
<?PHP
	}
		mysql_free_result($result);
		mysql_close();
?>
</table>
 
Tja da könnte man doch glatt darüber philosophieren was nun serverfreundlicher ist.

a) nl2br() beim Schreiben in die Datebank und str_replace("<br />","",...) beim editieren oder

b) Schreiben in die DB ohne nl2br() und Aufrufen dieser Funktion bei jedem Betrachten des Beitrags.

Lars ... irgendwie tendiere ich zu a), sag mir bitte, was ich falsch mache :-)
 
Original geschrieben von DeeJay-Luke
keine antwort?
Keine Zeit ?
Sieht halt so aus, als ob du das nl2br() nicht richtig verwendet hast. Mehr kann ich dazu auch nicht sagen. Außerdem ist pushen nach so kurzer Zeit nicht gerade angebracht.
 
Oke, Tim...hast ja vollkommen Recht ;)
Aber da scheiden sich dann die Geister, hauptsache das Ziel wird erreicht :P

Also bleibt es jedem selbst überlassen, was er verwenden möchte...
 
schau,du speicherst deinen Text ganz normal ohne replace und so in die datenbank.
wenn dus dann ausgiebst machst folgendes (nur ein bsp.!)

PHP:
echo ( nl2br($data['text']));

dann werden automatisch <br> s eingefügt
Da brauchst dich um nichts kümmern und kannst einfach deinen Text in die DB speichern!
 
Zurück