• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Php gästebuch

gullydeckel

Neues Mitglied
Also ich hab momentan zwei probleme

aber erst mal will ich das eine lösen :D

habe ein gästebuch erstellt mit Mysql und Php.
nun wenn ich Einträge mache mit zwei Zeilen sagen wir mal,
und sie später auffrufe, dann zeigt er mir den Eintrag nur in eine Zeile

ich lass die einträge so aufrufen(zeigen)

PHP:
$db_auswahl = mysql_select_db("db12708-main");

							
$sql       = mysql_query ("SELECT * FROM gbook ORDER BY id DESC");


while($row = mysql_fetch_object ($sql))

{
		
		echo '<p>';
		
		echo $row ->name . '<br>';
		echo $row ->text . '<br>';
		echo $row ->timeData . '<br>';
		
		echo '</p>';
}
	
?>

Was kann ich machen ?
oder gibt es eine bessere Methode ?
 
An der Ausgabemethode per While-Schleife mit mysql_fetch_object() gibt es nichts zu meckern.
Ich habe Dein Problem jetzt so verstanden, dass Du bei der Eingabe des Gästebucheintrags einen Zeilenumbruch (per ENTER bspw.) erzeugt hast und Dich jetzt wunderst, warum das in der Ausgabe nicht zu sehen ist.
Das kommt daher:
-Dein Browser sendet den Zeilenumbruch durchaus im $_POST an Dein PHP-Skript und Dein PHP-Skript schreibt ihn auch in die Datenbank. Wenn Du ihn aber in Deinem HTML-Quellcode anzeigst, interpretiert Dein Browser das nur als Leerzeichen.
-Wenn Du willst, dass der Zeilenumbruch angezeigt wird, musst Du jeden tatsächlichen Zeilenumbruch im Gästebucheintrag durch ein "<br>" ersetzen, denn das interpretiert der Browser dann als Zeilenumbruch, den er auch anzeigt.
-Das machst Du so:

PHP:
<?php
$gaestebucheintrag = "blablabla [Zeilenumbruch] blablabla"; 
// Zeilenumbrüche stehen in Deinem Quelltext als "\r\n" drin (\r für Linux, \n für Windoof)

// Jetzt jedes "\r\n" durch ein "<br>" ersetzten
$mit_zeilenumbruechen = str_replace("\r\n", "<br>\r\n", $gaestebucheintrag);

echo $mit_zeilenumbruechen;
?>

Sollte das mit dem "\r\n" nicht funktionieren, nimm einmal nur \r und einmal nur \n.
Das "\r\n" nach dem "<br>" ist übrigens nur wegen der Ordnung im Quelltext.
 
Siehe dazu auch: PHP: nl2br - Manual

Klassischerweise ist \n Linux, \r war Mac (jetzt wohl auch \n) und \r\n ist Windows.

Das stimmt so allerdings nicht ganz, da diverse Protokolle teilweise die Kodierung des Zeilenumbruchs gesondert vorschreiben. (Ich glaube in SMTP ist es etwa nach Spezifikation \r\n.)

Zahlreiche Netzwerkprotokolle zur Übertragung von Text, z. B. HTTP, SMTP oder FTP, definieren die Sequenz CR+LF für einen Zeilenumbruch. Einige Programme, z. B. Mail Transfer Agents, sind strikt und verweigern sogar die Verarbeitung von Daten mit alleinstehenden LFs ("Bare LF").[2] Andere Protokolle empfehlen jedoch, auch ein einzelnes LF als (ggf. weichen) Umbruch zu interpretieren.

- http://de.wikipedia.org/w/index.php...916455#Programmierung:_Codierung_des_Umbruchs

Eindeutig vieldeutig.
 
Zuletzt bearbeitet:
Zurück
Oben