Hi Paule,
sobald du das Klammernproblem in Zeile 2 durch Nachzählen und Korrigieren gelöst hast, befindet sich in deinem Skript noch ein Fehler.
In dem Bereich, der den Inhalt der Textdatei ausgibt, wird innerhalb von fread() in der Funktion filesize() auf die Variable $datei zugegriffen, die nirgends vorher definiert wurde.
$fp = fopen("test.txt", "r");
$str = fread($fp, filesize ($datei));
fclose($fp);
echo nl2br($str);
In deiner ersten Version war ja da der Skript-Name drin, was aber hier auch falsch wäre. Die Funktion fread() will wissen, wieviel Bytes sie auslesen soll, deshalb soll als zweiter Parameter die Dateigröße der Quelldatei angegeben werden. Die Quelldatei ist test.txt, denn diese soll ja ausgelesen werden. Also ändere die zweite Zeile in diesem Block so:
$str = fread($fp, filesize ("test.txt"));
Kleine Zusatz-Anregung:
-----------------------
Jetzt steht "test.txt" schon 3 mal in deinem Skript, also lohnt sich der Einsatz einer Variablen. Du könntest z.B. am Anfang deines Skriptes eine entsprechende Variable anlegen:
$namensdatei = "test.txt";
Dann greifst du später immer auf diese Variable zu, wenn du den Dateinamen deiner Speicherdatei benötigst.
$fp = fopen($namensdatei, "r");
$str = fread($fp, filesize ($namensdatei));
fclose($fp);
echo nl2br($str);
So kannst du jederzeit den Dateinamen der Speicherdatei ändern, indem nur an einer Stelle im Skript etwas umtragen musst.
Allerdings müsstest du auch in deiner Funktion "eintragen()" den Dateinamen mit der Variablen angeben. Nur ist die am Anfang definierte Variable nicht in der Funktion verfügbar, da dort keine einfachen Variablen von außen gelten. Du müsstest diese Variable mit in die Funktionparameter mit aufnehmen.
function eintragen($name,$namensdatei)
{
if($name)
{
$fp = fopen($namensdatei, "a");
fwrite($fp, $name. "\n");
fclose($fp);
echo "Du hast dich erfolgreich in die Gästeliste eingetragen.";
}
else
{
echo "Du hast keinen Namen eingetragen.";
}
}
Die Funktion muss dann auch mit zwei Parametern aufgerufen werden, also:
eintragen($name,$namensdatei);
Falls dir das alles zuviel war, dann ignoriere alles ab "Kleine Zusatz-Anregung". Ich hatte um 1.00 Uhr nachts halt nichts anderes zu tun und hab mich einfach mal ausgelassen.
Gute Nacht
Max Smily