Hier steckt ein Fehler!! Dieses Gästebuch Skript speichert die !alten! Gästebucheinträge nicht in der comment.txt sondern lediglich den !neusten!. Das darunter liegende Skript aus dem Lehrbuch arbeitet normal, beide Skripte greifen auf die gleiche comment.txt zu. Ich finde den Fehler um verrecken nicht. Währe nett wenn das mal jemand überfliegen könnte. Ist natürlich ein blöde Bitte *g*, und ich werd es mir sowieso noch nochmal auf der Arbeit reintun, aber wenn jemand bock hat.
Thx
Gutschy
----------------------------------------------
guestbook.php:
<html>
<head>
<title>Einfaches G&stebuch</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="white">
<h1>Einfaches G&stebuch</h1>
<form action="<?php echo $PHP_SELF ?>" method="post">Ihr Kommentar:<br>
<textarea cols="55" rows="4" wrap="soft" name="comment"></textarea><br>
Ihr Name:<br>
<input type="text" name="name"><br>
Ihre E-Mail-Adresse:<br>
<input type="text" name="email"> <input type="submit" value=
"Ver&ffentlichen"></form>
<h3>Bisherige Meinungen</h3>
<?php
// Dateinamen in Variablen speichern
$datei="comment.txt";
// Variablen Kommentar gesetzt? Name und E-Mail nicht leer?
if (isset($comment) && $name != "" && $email != "") {
// Datei wird zum Schreiben-Lesen geöffnet
$zeiger=fopen($datei,"r+");
// alte Daten herauslesen und in $alt sichern
$alt=fread($zeiger,filesize($datei));
// E-Mail-Link entsteht
$email="<a href=\"mailto:$email\">$email</a>";
// Datum ermitteln und formatieren
$datum=date("j.n.Y");
// Slashes entfernen und Zeilenumbrüche erhatlten
$comment=htmlspecialchars($comment);
$comment=stripslashes(nl2br($comment));
// Meinung "zusammensetzen"
$meinung="<p><b>$name</b> ($email) schrieb am
<i>$datum</i>:<br>$comment</p>\n";
// unsichtbarer Cursor marschiert zum Anfang
rewind($zeiger);
// neue Meinung vor alte in Datei schreiben:
fputs($zeiger,"$meinung \n $salt");
// Datei schließen
fclose($zeiger);
}
// Datei komplett anzeigen
readfile($datei);
?>
</body>
</html>
-----------------------------------------------
TestGast.php:
<html>
<head>
<title>Einfaches G&stebuch</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../css/neu.css">
</head>
<body bgcolor="white">
<h1>Einfaches G&stebuch</h1>
<form action="<?php echo $PHP_SELF; ?>" method="post">Ihr Kommentar:<br>
<textarea cols="55" rows="4" wrap="soft" name="comment"></textarea><br>
Ihr Name:<br>
<input type="text" name="name"><br>
Ihre E-Mail-Adresse:<br>
<input type="text" name="email"> <input type="submit" value=
"Ver&ffentlichen"></form>
<h3>Bisherige Meinungen</h3>
<?php
// Dateiname in Variable speichern
$datei="comment.txt";
// Variable Kommentar gesetzt? Name und E-Mail nicht leer?
if (isset($comment) && $name != "" && $email != "") {
// Datei wird zum Schreiben-Lesen geöffnet
$zeiger=fopen($datei,"r+");
// alte Daten herauslesen und in $alt sichern
$alt=fread($zeiger,filesize($datei));
// E-Mail-Link entsteht
$email="<a href=\"mailto:$email\">$email</a>";
// Datum ermitteln und formatieren
$datum=date("j.n.Y");
// HTML-Zeichen maskieren, Slashes entfernen, Zeilenumbrüche erhalten
$comment=htmlspecialchars($comment);
$comment=stripslashes(nl2br($comment));
// Meinung "zusammensetzen"
$meinung="<p><b>$name</b> ($email) schrieb am
<i>$datum</i>:<br>$comment</p>\n";
// unsichtbarer Cursor marschiert zum Anfang
rewind($zeiger);
// neue Meinung vor alte in Datei schreiben:
fputs($zeiger,"$meinung \n $alt");
// Datei schließen
fclose($zeiger);
}
// Datei komplett anzeigen
readfile($datei);
?>
</body>
</html>