Hallo Leute,

Aus dem Internet habe ich mir ein PHP Gästebuch gezogen. Die Gäste geben ihren Text in die Textarea ein und klicken danach auf den "Eintragen Button". Der Text wird danach in eine SQL Datenbank geschrieben und ausgegeben.

Ich würde gerne verhindern, dass jemand mein Gästebuch vollmüllt und mein Desigin kaputt macht in dem er zB : "HalloHalloHalloHalloHalloHalloHalloHalloHalloHall oHalloHalloHalloHalloHalloHalloHalloHalloHalloHall o" schreibt

Gibt es eine Möglichkeit, bei der Textausgabe, nach zB 20 Zeichen automatisch ein Leerzeichen zu setzen oder einen Zeilenumbruch auszulösen? Ich will verhindern, dass dieses Hallohallohallo... in einer Zeile steht.

Ich hab leider nicht so viel Ahnung von PHP. Daher, wenn jemand eine Lösung hat, am Besten teile von meinne Quelltext kopieren, damit ich weis wo die Befehle hingehören. O_o

Danke schonmal im vorraus. Hier mein Quelltext:

Code:
<?php 
// Die "db.php" wird includet. Damit haben wir die Verbindug zu der DB aufgebaut und haben alle Funktionen, die sich in der "db.php" befinden zur Hand. 
include("db.php"); 
  
// 1. IF-Abfrage | Hinzufügen eines neuen GB-Eintrages 
// Anweisungen werden ausgeführt, wenn die Variable "$action" den Wert "new" aufweist 
if ($action == "new") { 
   echo "<b>Neuer beitrag</b><br>"; 
   // 2. IF-Abfrage | Überprüft die Felder "$vorname" und "$text" auf ihre Vollständigkeit 
   if ($vorname != "" && $text != "") { 
        echo "Danke für Ihren Eintrag.<br><br>"; 
       // Das aktuelle Datum(+Uhrzeit) werden auf die Variable "$datum" verwiesen. Das Datum besteht aus einer Zahlenfolge. 
       $datum = time(); 
        // Der neue GB-Eintrag wird in die DB (Tabelle "gaestebuch") gespeichert 
        $sql = "INSERT INTO `gaestebuch` (`name`, `vorname`, `mail`, `icq`, `homepage`, `text`, `datum`)"; 
       $sql .= "VALUES ('$name', '$vorname', '$mail', '$icq', '$homepage', '$text', '$datum');"; 
      query($sql); 
   } 
    // Wenn die Felder nicht vollständig ausgefüllt sind, kommt folgende Meldung 
  else { 
       echo "Sie haben nicht alle Felder ausgef&uuml;t!"; 
// 2. IF-Abfrage ENDE 
} 
// 1. IF-Abfrage ENDE 
} 
?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>G&auml;stebuch</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-5"> 
</head> 
<body> 
<h1>G&auml;stebuch</h1> 
<h5><b>Hier k&ouml;nnen Sie einen neuen Eintrag erstellen:</b></h5> 
<!-- Formular ANFANG //--> 
<form action="gaestebuch.php"> 
<table cellpadding="0" cellspacing="5" border="0"> 
<tr> 
<td width="100" class="text" align="right">Name:</td> 
<td><input type="text" name="vorname" size="25" ></td> 
</tr> 


<tr> 
<td class="text" align="right">e-Mail:</td> 
<td><input type="text" name="mail" size="25"></td> 
</tr> 

<tr> 
<td class="text" align="right">Homepage:</td> 
<td><input type="text" name="homepage" value="http://" size="25"></td> 
</tr> 

<tr> 
<td class="text" align="right" valign="top">Nachricht:</td> 
<td><textarea cols="35" rows="10" name="text"></textarea></td> 
</tr> 

<tr> 
<td class="text"><br><br><br>&nbsp;</td> 
<td valign="top" align="right"><input type="submit" value="Eintragen"></td> 
</tr> 
</table> 
<!-- Im hidden-Feld wird der Variablen "action" der Wert "new" zugewiesen  (wichtig für die IF-Abfrage) //--> 
<input type="hidden" name="action" value="new"> 
</form> 
<!-- Formular ENDE //--> 

 <!-- Ausgabe aller GB-Einträge ANFANG //--> 
 <h1>Alle Eintr&auml;ge:</h1><br> 
 <table border="0" width="380" cellpadding="2" cellspacing="0"> 
 <?php 
 // "$persite" legt die Anzahl der GB-Einträge fest, die pro Seite angezeigt werden 
 $persite = 5; 

 // IF-Abfrage und Variable "$page" sind für die Verteilung der GB-Einträge auf mehrere Seiten zuständig 
 if($x == "") $x = 0; 
 $page = $x*$persite; 

 // In den nächsten 5 Zeilen werden alle GB-Einträge auf einen Array ("$row") verwiesen 
 $result = query("SELECT * FROM gaestebuch ORDER BY Datum DESC LIMIT  $page,5"); 
 $anzahl = mysql_num_rows($result); 
 // WHILE-Schleife dient der Wiedergabe aller GB-Einträge, die sich in der DB befinden 
 // WHILE-Schleife ANFANG 
 while($row = mysql_fetch_array($result)) { 
    // IF-Abfrage überprüft ob eine Homepageadresse eingetragen ist oder nicht und macht dann eine entsprechende Ausgabe 
    if ($row[homepage]=="http://") { 
        $hp = "keine Homepage"; 
    } else { 
        $hp = "<a href=\"$row[homepage]\" target=\"_blank\">Homepage</a>"; 
    // IF-Abfrage ENDE 
    } 
 ?> 
 <!-- Ausgabe der GB-Einträge //--> 
 <tr> 
 <td class="text"><b><? echo $row[vorname]; ?></b> <b><? $row[name]; ?></b> | <a href="mailto:<? echo $row[mail]; ?>">e-Mail</a> | <? echo $hp; ?></td> 
 </tr> 
 <? 

 // Da das Datum in einer Zahlenfolge in der DB liegt, muss diese zuerst in ein reguläres Datumformat zerlegt werden. Dies geschieht in folgenden 2 Zeilen 
 $datum = getdate($row[datum]); 
 $okay = "$datum[mday].$datum[mon].$datum[year] um $datum[hours]:$datum[minutes]"; 
 ?> 
 <tr> 
 <td class="text"><i>schrieb am <? echo $okay; ?></i></td> 
 </tr> 
 <? 
 // IF-Abfrage überprüft ob ein Kommentar vorhanden ist oder nicht und gibt diesen ggf. wieder 
 if ($row[8] == "") $kommentar = ""; 
 else $kommentar = "<i><b>Antwort:</b> $row[kommentar]</i>"; 
 ?> 
 <tr> 
 <td class="text"> <? echo $row[text]; ?></td></tr> 
 <tr> 
 <td class="text">&nbsp;</td> 
 </tr> 
 <tr> 
 <td class="comment"><? echo $kommentar; ?></td> 
 </tr> 
 <tr> 
 <td class="text">&nbsp;</td> 
 </tr> 
 <tr> 
 <td class="text"><hr align="center" color="000000" width="100%"></td> 
 </tr> 
 <tr> 
 <td class="text">&nbsp;</td> 
 </tr> 
 <? 
 // WHILE-Schleife ENDE 
 } 
 ?> 
 </table> 
 <? 
 // Die "menge"-Funktion wird aufgerufen um die Anzahl aller GB-Einträge zu ermitteln 
 $count = menge("gaestebuch"); 

 // Im foldendem Abschnitt werden die GB-Einträge auf mehrere "Seiten" aufgeteilt 
 $count = $count/$persite; 
 // FOR-Schleife ANFANG 
 for($z=0; $z<$count; $z++) { 
     $y = $z+1; 
     // IF-Abfrage ANFANG 
     if ($x != $z) { 
             echo "<a href=\"gaestebuch.php?show=guestbook&kat=site&x=$z\">$y</a> | "; 
     } else { 
         echo "<b>$y</b> | "; 
     // IF-Abfrage ENDE 
    } 
 // FOR-Schleife ENDE 
 } 
 ?> 
 <!-- Ausgabe der aller Gästebucheinträge ENDE //--> 
 </body> 
 </html>