Devon (21.06.2013), Sky.NET (20.06.2013), xOneDirectionx (21.06.2013)
-
20.06.2013, 07:31 #1
Zeilenumbruch funktioniert nicht :/
Hallo zusammen,
ich versuche es ganze zeit nur ich kriege es nicht hin.
Bei dem Privat Message System funktioniert kein Zeilenbruch.
Die ausgabe sieht ca. so aus:
Zeile1<br>Zeile2<br>Zeile3
Und im Quellcode sieht es so aus:
Zeile1<br>Zeile2<br>Zeile3
Das Hauptsächliche ist ja das:
$text = preg_replace('/\r\n|\r/', "<br>", html_entity_decode($_POST["nachricht"]));
Hier:
<textarea name="nachricht" id="textarea"><?php
$a = str_replace("<br />", " ", $text);
echo $a; ?></textarea>
Hier ist mein Code:
PHP-Code:<?php
if(isset($_GET["post"])) {
if($_GET["post"]=="new") {
?>
<h1>Neue Nachricht</h1>
<div id="news" style="">
<p>
<form action="index_private.php" method="POST">
<a href="index_private.php?post=new" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;">Neue Nachricht</a>
<a href="index_private.php" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;">Back</a>
</form>
</p>
</div>
<?php
if(isset($_POST["back"])) {
echo '<meta http-equiv="refresh" content="0; URL=index_private.php">';
}
if(isset($_GET["to"])) {
$to = $_GET["to"];
} else $to = "";
if(isset($_GET["betreff"])) {
$betreff = $_GET["betreff"];
} else $betreff = "";
?>
<div id="news">
<form action="index_private.php?post=new" method="POST">
<p id="inputtexttitel">An</p>
<input type="text" id="inputtext" value="<?php echo $to; ?>" name="to">
<p id="inputtexttitel">Betreff</p>
<input type="text" id="inputtext" value="<?php echo $betreff; ?>" name="betreff"><br>
<p id="inputtexttitel" >Nachricht</p>
<textarea name="nachricht" id="textarea"><?php
$a = str_replace("<br />", " ", $text);
echo $a; ?></textarea><br>
<input type="submit" value="Senden" name="sendengo" id="buttons">
</form>
</div>
<?php
if(isset($_POST["sendengo"])){
$to = $_POST["to"];
$betreff = $_POST["betreff"];
$text = preg_replace('/\r\n|\r/', "<br>", html_entity_decode($_POST["nachricht"]));
$db = new Database();
$db2 = new Database();
$db2->query("SELECT * FROM users WHERE username='".htmlentities(trim(stripslashes(mysql_real_escape_string($to))))."'");
foreach($db2->rows() as $row) {
$zu = $row["id"];
}
if($zu!="") {
$datum = date("d.m.Y");
$db->InsertInto("INSERT INTO `post` (`post_id`, `from`, `to`, `betreff`, `text`, `datum`) VALUES
('','". $username ."','".$to."','".htmlentities(trim(stripslashes(mysql_real_escape_string($betreff))))."','".htmlentities(trim(stripslashes(mysql_real_escape_string($text))))."','".$datum."')");
echo "<script>alert('Message Gesendet!');</script>";
} else echo "<script>alert('Dieser User existiert nicht!');</script>";
} //Button nicht gedrückt
} elseif($_GET["post"]=="ges") {
?>
<h1>Gesendete</h1>
<div id="news" style="">
<p>
<form action="index_private.php" method="POST">
<a href="index_private.php?post=new" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;">Neue Nachricht</a>
</form>
</p>
</div>
<?php
if(isset($_POST["newmsg"])) {
echo '<meta http-equiv="refresh" content="0; URL=index_private.php?post=new">';
}
if(isset($_POST["ges"])) {
echo '<meta http-equiv="refresh" content="0; URL=index_private.php?post=ges">';
}
?>
<div id="news">
<table style="font-size:140%;">
<tr>
<td style="font-size:100%;width:200px;"><h2>An</h2></td>
<td style="font-size:100%;width:550px;"><h2>Betreff</h2></td>
<td style="font-size:100%;"><h2>Datum</h2></td>
</tr>
<?php
$dbmsg = new Database();
$dbmsg->query("SELECT * FROM `post` WHERE `from`='".$username."' ORDER BY `post_id` DESC");
foreach($dbmsg->rows() as $row) {
$active = $row["active"];
if($active==0) {
$blub1 = "<b>";
$blub2 = "</b>";
} else {
$blub1 = "";
$blub2 = "";
}
echo "<tr><td>".$blub1.$row["to"].$blub2."</td>
<td><a href='index_private.php?post=".$row["post_id"]."'>".$blub1.$row["betreff"].$blub2."</a></td>
<td>".$blub1.$row["datum"].$blub2."</td></tr>";
}
?>
</table>
</div>
<?php
} elseif($_GET["post"]!="") {
$post_id = $_GET["post"];
$asd = new Database();
$asd->query("SELECT * FROM `post` WHERE `post_id`='".$post_id."'");
if($asd->numRows()!=0) {
foreach($asd->rows() as $row) {
$to = $row["to"];
$from = $row["from"];
$betreff = $row["betreff"];
$name = $row["from"];
$text = $row["text"];
$datum = $row["datum"];
$active = $row["active"];
}
if($to==$username) {
?>
<h1>Posteingang</h1>
<div id="news" style="">
<p>
<form action="index_private.php?post=<?php echo $post_id; ?>" method="POST">
<a href="index_private.php?post=new&to=<?php echo $from; ?>&betreff=RE:<?php echo $betreff; ?>" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;">Antworten</a>
<input type="submit" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;" value="Löschen" name="delmsg">
<a href="index_private.php" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;">Back</a>
</form>
</p>
</div>
<?php
if(isset($_POST["back"])) {
echo '<meta http-equiv="refresh" content="0; URL=index_private.php">';
}
if(isset($_POST["delmsg"])) {
$asd1 = new Database();
$yey = $asd1->InsertInto("DELETE FROM `post` WHERE `post_id`='".$post_id."'");
if($yey==true) {
} echo "<script>alert('Du hast diese nachricht geloescht!');return true;</script><meta http-equiv='refresh' content='0; URL=index_private.php'>";
}
if(isset($_POST["newmsg"])) {
echo '<meta http-equiv="refresh" content="0; URL=index_private.php?post=new&to='.$from.'&betreff=RE:'.$betreff.'">';
}
echo "<div id='news'><h2>von<i> ".$from." </i>| am <i>".$datum."</i></h2><br>";
echo '<form action="?post='.$post_id.'" method="POST">';
echo "<div style='font-family:Comic Sans MS;font-size:120%;color:grey;'>".$text."</div></div>";
echo "<br><br><br>";
//Update status
$dbuptodate = new Database();
$dbuptodate->InsertInto("UPDATE `post` SET `active`='1' WHERE `post_id`='".$post_id."'");
} elseif($from==$username) {
?>
<h1>Posteingang</h1>
<div id="news" style="">
<p>
<form action="index_private.php?post=<?php echo $post_id; ?>" method="POST">
<a href="index_private.php?post=new&to=<?php echo $from ?>&betreff=RE:<?php echo $betreff; ?>" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;">Antworten</a>
<a href="index_private.php" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;">Back</a>
</form>
</p>
</div>
<?php
if(isset($_POST["back"])) {
echo '<meta http-equiv="refresh" content="0; URL=index_private.php">';
}
if(isset($_POST["newmsg"])) {
echo '<meta http-equiv="refresh" content="0; URL=index_private.php?post=new&to='.$from.'&betreff=RE:'.$betreff.'">';
}
echo "<div id='news'><h2>An<i> ".$to." </i>| am <i>".$datum."</i></h2><br>";
echo '<form action="?post='.$post_id.'" method="POST">';
echo "<div style='font-family:Comic Sans MS;font-size:120%;color:grey;'>".$text."</div></div>";
echo "<br><br><br>";
//Update status
} else echo "<script>alert('Du hast keine Rechte dies zusehen!');return true;</script><meta http-equiv='refresh' content='0; URL=index_private.php'>";
} else echo "<script>alert('Diese Nachricht ist nicht verfuegbar!');return true;</script><meta http-equiv='refresh' content='0; URL=index_private.php'>";
} else echo "fehler";
//
} else {
?>
<h1>Posteingang</h1>
<div id="news" style="">
<p>
<form action="index_private.php" method="POST">
<a href="index_private.php?post=new" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;">Neue Nachricht</a>
<a href="index_private.php?post=ges" style="font-size: 150%;color:grey;border:1px solid grey;background:#F2F2F2;padding-left:15px;padding-right:15px;">Gesendete</a>
</form>
</p>
</div>
<?php
if(isset($_POST["newmsg"])) {
echo '<meta http-equiv="refresh" content="0; URL=index_private.php?post=new">';
}
if(isset($_POST["ges"])) {
echo '<meta http-equiv="refresh" content="0; URL=index_private.php?post=ges">';
}
?>
<div id="news">
<table style="font-size:140%;">
<tr>
<td style="font-size:100%;width:200px;"><h2>Von</h2></td>
<td style="font-size:100%;width:550px;"><h2>Betreff</h2></td>
<td style="font-size:100%;"><h2>Datum</h2></td>
</tr>
<?php
$dbmsg = new Database();
$dbmsg->query("SELECT * FROM `post` WHERE `to`='".$username."' ORDER BY `post_id` DESC");
foreach($dbmsg->rows() as $row) {
$active = $row["active"];
if($active==0) {
$blub1 = "<b>";
$blub2 = "</b>";
} else {
$blub1 = "";
$blub2 = "";
}
echo "<tr><td>".$blub1.$row["from"].$blub2."</td>
<td><a href='index_private.php?post=".$row["post_id"]."'>".$blub1.$row["betreff"].$blub2."</a></td>
<td>".$blub1.$row["datum"].$blub2."</td></tr>";
}
?>
</table>
</div>
<?php
}
?>
-
20.06.2013, 09:06 #2
AW: Zeilenbruch funktioniert nicht :/
Versuch es mal mit
PHP-Code:\n
-
20.06.2013, 11:06 #3
- Registriert seit
- 26.10.2011
- Beiträge
- 1.196
- Blog Entries
- 2
Thanked 1.597 Times in 726 PostsAW: Zeilenbruch funktioniert nicht :/
Versuch mal:
Code:$text = preg_replace('/\r\n|\r/', "<br>", html_entity_decode($_POST["nachricht"]));
Code:$text = html_entity_decode(preg_replace('/\r\n|\r/', "<br>", $_POST["nachricht"]));
Bin mir grad nich 100% sicher. Zu warum und zu müde xDGeändert von patlux (20.06.2013 um 11:08 Uhr)
-
20.06.2013, 11:18 #4
-
20.06.2013, 14:29 #5
- Registriert seit
- 17.12.2011
- Beiträge
- 143
Thanked 74 Times in 52 PostsAW: Zeilenbruch funktioniert nicht :/
preg_replace('/\r\n|\r/' . " \n",
Warum denn ein Kommata das macht 0 Sinn? Und das Leerzeichen war auch unnötig hinter dem /n :-)Geändert von Integer (20.06.2013 um 14:30 Uhr)
-
20.06.2013, 18:07 #6
- Registriert seit
- 15.11.2011
- Beiträge
- 7.858
- Blog Entries
- 5
Thanked 9.364 Times in 3.203 PostsAW: Zeilenbruch funktioniert nicht :/
Und was bringt ihm das in seiner HTML-Ausgabe? HTML interessieren Escapesequenzen nicht.
Das Pattern ist unsinnig. Wenn du schon alle Plattformen abdecken willst musst du \r und \n sowohl getrennt als auch einzeln ersetzen. Linux verwendet i.d.R. nur \n, Windows \r\n und Mac OS \r. Man braucht für so Kleinigkeiten auch keine Regulären Ausdrücke, die Stringfunktionen reichen hier vollkommen aus:
PHP-Code:$str = str_replace(array("\r\n", "\r", "\n"), "<br>", $str);
Btw:
PHP-Code:$post_id = $_GET["post"]; $asd = new Database();
$asd->query("SELECT * FROM `post` WHERE `post_id`='".$post_id."'");
Generell solltest du an deinem Codingstyl arbeiten, da gibts einiges Optimierungspotenzial. Den Sinn einer Datenbank-Klasse scheinst du auch nicht so richtig verstanden haben, sonst würdest du nicht 10 Millionen Instanzen davon erstellen. Variablen 'blubb', 'asdf' oder sonst wie sinnlos zu benennen ist auch nicht gerade sinnvoll, das ist gift für die Übersicht. Spätestens sobald du mehr als eine Hand voll Codezeilen so schlampig geschrieben hast und dann einen Fehler finden willst bzw den Code in 2 Monaten mal anschaust wirst du das auch selbst merken. Es hat schon seinen Grund, weshalb man Variablennamen selbst wählen kann. Das gleiche gilt für mehrere ineinander verschachtelte If-Abfragen, dafür gibts logische Operatoren.
Wenn das was größeres werden soll würde ich außerdem über ein Templatesystem und je nachdem was konkret umgesetzt werden soll ggf. auch gleich ein Framework nachdenken. Layout und Code sollte man soweit es geht trennen.
-
The Following 4 Users Say Thank You to DMW007 For This Useful Post:
-
21.06.2013, 21:26 #7
-
21.06.2013, 23:15 #8
- Registriert seit
- 18.03.2013
- Beiträge
- 481
Thanked 264 Times in 168 PostsAW: Zeilenumbruch funktioniert nicht :/
Einfach die Funktion nl2br(string); benutzen! Aber vernünftiger wäre es, wenn du den kompletten Source noch einmal neu schreiben würdest und dieses Mal nicht alles durcheinander und auch nicht so unübersichtlich programmieren würdest. Es hilft später auch dir, wenn du dein "Werk" mal erweitern willst. Vergiss die Kommentierung deines Quellcodes nicht.
-
22.06.2013, 02:01 #9
AW: Zeilenumbruch funktioniert nicht :/
Habs selbst raus bekommen:
PHP-Code:$text = preg_replace('/\r\n|\r/', " \n ", html_entity_decode($_POST["nachricht"]));
PHP-Code:$text = preg_replace('/\r\n|\r/', "<br>", html_entity_decode($_POST["nachricht"]));
und
PHP-Code:('','". $username ."','".$to."','".htmlentities(trim(stripslashes(mysql_real_escape_string($betreff))))."','".htmlentities(trim(stripslashes(mysql_real_escape_string($text))))."','".$datum."')");
PHP-Code:('','". $username ."','".$to."','".htmlentities(trim(stripslashes(mysql_real_escape_string($betreff))))."','".html_entity_decode(trim(stripslashes(mysql_real_escape_string($text))))."','".$datum."')");
Danke nochmals für eure Hilfe
-
22.06.2013, 20:35 #10
- Registriert seit
- 15.11.2011
- Beiträge
- 7.858
- Blog Entries
- 5
Thanked 9.364 Times in 3.203 PostsAW: Zeilenumbruch funktioniert nicht :/
Ich empfehle dir dringend mehr an der Logik deines Codes zu arbeiten. Es macht Sinn zuerst darüber nachzudenken was der Code eigentlich tun muss. So was wie
PHP-Code:$text = preg_replace('/\r\n|\r/', " \n ", html_entity_decode($_POST["nachricht"]));
Bei solchen Konstrukten merkt man auch, dass du scheinbar selbst nicht so genau weißt was du da tust:
PHP-Code:html_entity_decode(trim(stripslashes(mysql_real_escape_string($text))))
Was ich bezüglich deines Ansatzes mit dem letzten Post sagen wollte: Es gibt wie bereits gesagt die PHP-Funktion nl2br, die das macht was du willst, und zwar plattformunabhängig. Es macht wenig Sinn das Rad neu zu erfinden. Zumal wie bereits gesagt Regex für solche Kleinigkeiten wie mit Kanonen auf Spatzen schießen ist.
Neuste Community-Posts
- Skuriler Umweltschutz - Wird Umweltverschmutzung mit noch grösserer Verschmutzung beseitigt?
- Muttertag
- Mobilgeräte in Schulen: Verbieten, einschränken oder in den Unterricht integrieren?
- Microsoft: Schmeißt eure Windows 10 PCs endlich weg!
- Kaputte Windows 11 ISOs: Microsoft lässt euch mit gefährlichem Problem alleine
- Was hat Präsident Donald Trump nach seiner Wahl umgesetzt?
- Microsoft startet Upgrade-Zwang auf umstrittenes Windows 11 24H2
- Linux auf Facebook gesperrt: Die Macht der kommerziellen Sozialen Netzwerke
- Bahnreisende dürfen kein Taschenmesser mitnehmen - Messerverbot in Zügen und Bahnhöfen!
- Warum die Linke aus dem Nichts vor allem im Internet erfolgreich geworden ist
- Auto Kauf nur welches ?
- Geld anlegen in Gold/Silber
- 144€: Der 16GB Raspberry Pi 5 ist da
- Zukünftige Probleme im Gesundheits- und Notfallsystem. Auswirkungen des Fachkräftemangel.
- Nah an der lückenlosen Überwachung
- neue Waschmaschine, worauf achten
- Zuviele Überstunden?
- Elektromüll: Die große Recycling-Lüge, an die wir alle glauben
- Wie schädlich ist Alkohol
- Die Bundesregierung schafft bezahlbaren Wohnraum.
Ähnliche Themen
-
Funkmaus funktioniert nicht
Von Runix im Forum WindowsAntworten: 9Letzter Beitrag: 12.09.2013, 20:48 -
Headset funktioniert nicht
Von Manipulate im Forum HardwareAntworten: 3Letzter Beitrag: 01.08.2013, 14:53 -
Schwimmtestprogramm funktioniert nicht !
Von AlexEHM im Forum C++Antworten: 1Letzter Beitrag: 12.06.2012, 22:28 -
Webcam funktioniert nicht
Von kollos im Forum HardwareAntworten: 8Letzter Beitrag: 20.03.2012, 18:57 -
Bluetooth funktioniert nicht
Von Diestver im Forum WindowsAntworten: 1Letzter Beitrag: 07.01.2012, 07:10
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.