Peter: Nicht mehr objektorientiert programmieren

Beitrag lesen

Also, ich versuche nochmal klar zu machen, welche Funktion das Script hat:
Ich möchte ein Gästebuch programmieren. Über ein Formular werden per POST-Methode die Daten aus dem Formular an die Datei/das Script sign.php4 gesendet. Dieses Script -also sign.php4- soll die Daten empfangen, bearbeiten (addslashes, Zeilenumbrüche entfernen, usw.) und dann in eine Datei eintr.dat speichern. Jeweils ein Gästebucheintrag soll in einer Zeile in der eintr.dat gespeichert werden. Sind also drei Einträge vorhanden, gibt es auch drei Zeilen in der eintr.dat. In jeder einzelnen Zeile sollen die einzelnen Informationen, die durch einen Gästebucheintrag übermittelt werden (Name, Nachricht, usw.) jeweils durch "|||" getrennt gespeichert werden.

Jetzt habe ich es so versucht:

<?php
$dat = "";

foreach ($_POST as $value)
{
$value = addslashes($value);
$dat .= addslashes($value) . "|||";
}

$pfad = "eintr.dat";
$datei = fopen($pfad, "a+");
fputs($datei, "$dat\n");
fclose($datei);
?>

Es erscheint nach dem Absenden des Formulars, also dem Aufruf der Datei sign.php4 folgender Fehlerhinweis:
Warning: Invalid argument supplied for foreach() in c:/programme/apache/apache/files/gb/sign.php4 on line 6

Trotzdem wird bei jedem Absenden, also bei jedem Eintrag, eine weitere Zeile in der eintr.dat gespeichert, nur eben eine völlig leere, es werden also keine Informationen gespeichert. Genau genommen wird nur "\n" pro Eintrag gespeichert. An Dateirechten o.ä. kann es also nicht liegen.

Ich danke euch für eure Geduld und hoffe, dass ihr mir aufgrund dieser ausführlichen Erklärung vielleicht noch weiterhelfen könnt.

Peter