Kleines Problem

kcyberbob

Erfahrenes Mitglied
Hallo zusammen,

ich habe mir eine kleines Newssystem gebastelt bestehen aus einem Formular, wo ich den Titel und den Text der News eingeben kann.
Wenn man dann auf abschicken klickt öffnet sich eine neue Seite wo eine Bestätigung kommt oder eine Fehlermeldung.
So nun sind die Daten in der Datenbank.

Aber wenn ich zum Beispiel beim eingeben des Textes einen Absatz gemacht habe indem ich auf die Entertaste gedrückt habe, wird dieser bei der außgabe des Textes nicht berücksichtigt.
Es wird also alles in einer Zeile dargestellt solange bis der automatische Umbruch kommt.

Wie kann ich das ganze ändern das ich mit der Entertaste einen Absatz machen kann.


Ich hoffe ihr könnt mir da weiterhelfen.


Mit freundlichen Grüßen

kcyberbob
 
???

Erstmal danke.
Aber wo muß ich das denn einfügen?
In der Seite wo ich die Variablen in die Datenbank bringe oder in der Seite wo die Daten ausgegeben werden?
Das ist der Quellcode von der Seite wo ich die daten in die MySQL Datenbank bringe:

PHP:
<?
mysql_connect("host","username","passwort") or die  ("Keine Verbindung möglich");
mysql_select_db("tischkegeln_de") or die ("Datenbank existiert nicht");
$eintrag = "INSERT INTO news (titel, content) VALUES ('$titel', '$content')";
mysql_query($eintrag);
?>
Dann der HTML Code.


Hier ist der Quellcode wie es ausgegeben wird:
PHP:
<? 

mysql_connect("host","username","passwort") or die  ("Keine Verbindung möglich");
mysql_select_db("tischkegeln_de") or die ("Datenbank existiert nicht");

$abfrage = "SELECT * FROM news order by nr desc";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))    
            
    {
?>
<?
echo <<<ENTRY
<table width="100%" border="0" cellpadding="2" cellspacing="0" class="tableborder">
                                    <tr> 
                                      <td height="18" bgcolor="#3E483C" class="bottomline"><table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
                                          <tr> 
                                            
          <td><b><img src="images/Pfeil2.gif" width="10" height="8" align="absmiddle"> 
            $row->titel</b></td>
                                          </tr>
                                        </table></td>
                                    </tr>
                                    <tr> 
                                      <td> <table width="98%" border="0" align="center" cellpadding="0" cellspacing="5">
                                          <tr> 
                                            <td>$row->content
                                              </td>
                                          </tr>
                                        </table></td>
                                    </tr>
                                  </table><br>
ENTRY;
}
?>

Wo muß ich das jetzt einfügen?


Gruß kcyberbob
 
PHP:
<? 

mysql_connect("host","username","passwort") or die  ("Keine Verbindung möglich");
mysql_select_db("tischkegeln_de") or die ("Datenbank existiert nicht");

$abfrage = "SELECT * FROM news order by nr desc";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))    
            
    {

echo '<<<ENTRY
<table width="100%" border="0" cellpadding="2" cellspacing="0" class="tableborder">
                                    <tr> 
                                      <td height="18" bgcolor="#3E483C" class="bottomline"><table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
                                          <tr> 
                                            
          <td><b><img src="images/Pfeil2.gif" width="10" height="8" align="absmiddle"> 
            $row->titel</b></td>
                                          </tr>
                                        </table></td>
                                    </tr>
                                    <tr> 
                                      <td> <table width="98%" border="0" align="center" cellpadding="0" cellspacing="5">
                                          <tr> 
                                            <td>'.nl2br($row->content).'
                                              </td>
                                          </tr>
                                        </table></td>
                                    </tr>
                                  </table><br>
ENTRY';
}
?>

In der Datenbanken werden Zeilenumbrüche nicht als <br>-Tags gespeichert, sondern als Escapes (im Fall vom Zeilenumbruch als \n)
Mit der Funktion nl2br wandelst du die \n´s im Text in die <br>´s um, so dass sie auch im Browserfenster dargestellt werden.
 
Zuletzt bearbeitet:
Danke

Hey Vielen Dank.
Es funktioniert.
Doch bei deinem Script ist ein Fehler, wenn ich es so schreibe, dann wird der Titel $row->titel nicht ausgelesen.
Also hab ich jetzt ebenfallst
'.nl2br($row->titel).'

hingeschrieben, dann geht es.

Gruß

kcyberbob

PS: Wenn du dir das Ergebnis anschauen willst, dann schau doch mal auf

www.tischkegeln.de
 
Sorry, der Fehler war in deinem Script auch schon drin, hab nur vergessen ihn zu verbessern.
Du kannst Object-Variablen (wie $row->titel) nicht mit in einen String schreiben, er wird dann nicht ersetzt.
Du musst es einfach "...".$row->titel."..." schreiben, das nl2br ist unnötig, falls du nicht mehrzeilige Überschriften hast.
 
Da war nicht wirklich ein Fehler im Quellcode von kcyberbob... mit der heredoc-Syntax (die du mit deinem Code durch die ' zunichte gemacht hast) funktioniert das Variablenparsing (auch bei Objektvariablen) ebenso wie bei einem double quoted String. Im Zweifelsfall muss man halt die Variable in geschweifte Klammern setzen.

Will jetzt nicht pingelig sein, aber nur um Missverständnissen vorzubeugen...
 
Zurück