Hilfe bei PHP-Gästebuch

SpK

Grünschnabel
Ich versuch nun seit ein paar Tagen die neuen Einträge meines Gästebuchs an die erste Stelle zu bekommen... meine Idee dazu

PHP:
 $datenfile = "gaeste.dat";
 
 $datenhandle = @fopen($datenfile,"a") or die ("<ul>Gästebuch kann nicht geöffnet werden!</ul>");

 fseek($datenhandle, 0, SEEK_SET);

 @fputs($datenhandle, $eintrag) or die ("<ul>Kann Eintrag nicht speichern!</ul>");
 
 @fclose($datenhandle) or die ("<ul>Gästebuch kann nicht geschlossen werden!</ul>");
 
 echo ("<ul><b>Prima!</b> das hat geklappt.<br><br><a href=\"../gaeste.php\" target=\"main\">anschauen</a></ul>");

das Gästebuch funktioniert soweit aber ich versteh beim besten willen nicht warum der die neuen Einträge immer an das Ende der Datei schreibt... ich setz ja den Zeiger auf den Anfang... oder Wer weiß die Lösung

Vielen Dank schon mal im Voraus... ich brauch wahrscheinlich wieder ein wink mit dem Stützbalken... die Zaunslatte reicht nicht...
 
Quelle: de.php.net/fopen

mode Beschreibung
'r' Öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei.
'r+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.
'w' Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.
'w+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a' Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a+' Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.

Ich nehme an das dein fseek nicht korrekt arbeitet.
 
das Problem lässt sich damit beheben, als dass du die einzelnen Einträge in ein Array einliest, dieses mit array_reverse() umdrehst und anschliessend ausgibst.
 
PHP:
$Datei = fopen ("gaestebuch.dat", "r");
$Zeile = true;
while ($Zeile) {
$Zeile = fgets($Datei, 100);
echo $Zeile, "<br>";
}
fclose ($Datei);
 
was soll das bringen?
du liest einfach nur die Datei ein und beschränkst dabei die Zeilenlänge auf 100Bytes. Aber wo bingt das was beim Umgedrehten ausgeben der Gästebuchzeilen?

btw: while( $Zeile = fgets($Datei, 100) )

geht auch ;)
 
Original geschrieben von Ben Ben
was soll das bringen?
du liest einfach nur die Datei ein und beschränkst dabei die Zeilenlänge auf 100Bytes. Aber wo bingt das was beim Umgedrehten ausgeben der Gästebuchzeilen?

btw: while( $Zeile = fgets($Datei, 100) )

geht auch ;)
So habe ich das immer gemacht (jetzt eben per MySQL) und da gings dann "richtig" herum.
 
Zurück