Mhm,
habe ich schon erwaehnt, dass das mein erstes PHP Programm ist?
Ich wollte nur eine eigene Seite machen, und dazu ein Gaestebuch schreiben.
Selber schreiben, weil ich kein Gaestebuch gefunden habe, das 100% so aussieht, wie ich es wollte.
Naja, ganz so schlecht ist das bislang ja nicht. Immerhin bist du schon um die Klippe herumgeschifft, dass der Eintragende kein ausführbares Javascript eingeben kann. Das hätte ich nämlich sonst gleich mal eingegeben. Grund dafür ist die Funktion htmlentities(), die alle bösen Zeichen in ungefährliche Entities wandelt.
Dann, ich habe mir die Sachen auf
http://validator.w3.org/check?uri=http%3A%2F%2Fmitglied.lycos.de%2Fpandaemonium%2Fgaestebuch%2Feintragen.php4&charset=iso-8859-1+%28Western+Europe%29&doctype=HTML+4.01+Transitional
durchgelesen.
Sie sagen mir leider nicht viel. Nunja sie sagen mir schon was, aber warum zB das ">" in
<body bgcolor="#FFFFFF">
^
nicht erlaub ist bleibt fuer mich ein Raetzel.
Nicht das ">" ist verboten, sondern das ganze <body>-Tag. Und das liegt daran, weil du kein <head> hast!
Ich bitte dich garnicht, es alles mir zu erklaeren, weil es zu viel arbeit fuer dich waere. ich bin naemlich noch ziemlich am anfang von PHP.
Gewisse Dinge erklärt der Validator ganz verständlich - beispielsweise müssen Werte, die andere Zeichen als Buchstaben und Zahlen enthalten, immer in Anführungsstriche gesetzt werden - deine Hintergrundfarbangabe wäre davon betroffen. Aber wie ich schon sagte: Mach das _nicht_ als Angabe in HTML, sondern formatiere es mit CSS. Denn wenn du irgendwann einmal auf die Idee kommst, dass dein Gästebuch anders aussehen soll, müßtest du deine gesamte Gästebuchdatei umändern (in der steht die Formatierung ja schon drin). Mit CSS änderst du einfach nur eine Definition in der CSS-Datei, und fertig.
Ach ja: Wirf <center> komplett raus. :) Dafür gibt es bessere und vor allem erlaubtere Alternativen.
Ich dachte wenn im Formular automatisch nach dem 35ten zeichen ein <br> gesetzt wird, ist das problem doch geloest?
Nein, nicht zwingend. Was du verhindern willst ist, dass jemand hintereinander mehr als 35 Zeichen (außer dem Leerzeichen) eingibt und so deine Tabelle sprengt. Du kannst das verhindern, indem du als wordwrap-Trennzeichen einfach ein Leerzeichen angibst - dann bricht der Browser den Text automatisch um.
$text=wordwrap($text,35,"<br>");
Das ist zumindest schon mal die richtige Position. Allerdings: Du fügst hier "<br>" als Zeichen ein - die werden aber durch die nachfolgende Funktion htmlentities() in Entities umgewandelt und erscheinen dann als Text im Browser.
Nimm ein Leerzeichen als einzufügendes Umbruchzeichen, der Browser erledigt den Rest.
$neu.="<tr><td bgcolor=#F4F4F4><div class=text>";
$neu.=strtr(nl2br(htmlentities(trim($text))."<br>"),"\n\r"," ");
$neu.="</div></td></tr></table><br><br>";
$neu.="\n"; //Ablschluss
- Sven Rautenberg