joa also ich habe den code mal auf xhtml angepasst. dann war bei n12br() ein kleiner tipfehler, nach dem n kommt keine 1 sondern ein L (klein geschrieben). deshalb gab es auch keine zeilenumbrüche mehr.
der andere fehler tritt nur auf wenn in der commets.txt noch nichts vorhanden ist , die datei also 0kb hat, weil der 2.parameter in
fread($zeiger,filesize($datei))
muss grösser als null sein. nach dem ersten eintrag sollte diese meldung nicht mehr kommen und alles normal sein.
zudem solltest du evtl noch eine hinweis meldung einbauen wenn eine der angaben fehlt, damit die user sich ned wundern warum ihr post nicht eingetragen wird.
hier mal mein verbesserter code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Gästebuch</title>
</head>
<body bgcolor="#FFFFFF">
<h1>Einfaches Gästebuch</h1>
<form action="<?php echo $PHP_self ?>" method="post">
Ihr Kommentar:<br />
<textarea name="comment" cols="20" rows="6" wrap="physical"></textarea>
<br />
Ihr Name:<br />
<input name="name" type="text" />
<br />
Ihre E-Mail Adresse:<br />
<input type="text" name="email" />
<input type="submit" value="veröffentlichen" />
</form>
<h3>Bisherige Meinungen</h3>
<?php
$datei="comment.txt";
if (isset($comment) && $name != "" && $email != "") {
$zeiger=fopen($datei,"r+");
$alt=fread($zeiger,filesize($datei));
$email="<a href=\"mailto:$email\">$email</a>";
$datum=date("j.n.Y");
$comment=stripslashes(nl2br($comment));
$meinung="<p><b>$name</b> ($email) schrieb am
<i>$datum</i>:<br>$comment</p>\n";
rewind ($zeiger);
fputs ($zeiger, "$meinung \n $alt");
fclose($zeiger);
}
readfile($datei);
?>
</body>
</html>
Alles anzeigen
mfg
blue