Neuster Gästebuch eintrag zuerst

Status
Nicht offen für weitere Antworten.
dann nhätte ich also in diesem fall diesen code?



<?php
$daten="Erstellt:".date("format")."<br>";
$daten.=$eintrag."<br><br>";
$daten.="von <a href=mailto:$email>$name</a><br>";
$daten.="seine <a href=http://$homepage>Homepage</a><hr noshade size=1> </a>";
$datenbank = "daten.dat";​
$Inhalt = fread ($Datei, filesize ($Datenbank));
$daten = $daten . "<br><br>" . $Inhalt;
$datei = fopen($datenbank,"r+");
$eintrag=strip_tags($eintrag);
fwrite($datei, $daten);
?>​
 
nicht ganz!

Die Datei muss zuerst geöffnet sein!
PHP:
$datei = fopen($datenbank,"r+");
dann:
PHP:
$inhalt = fread ($datei, filesize ($datenbank));
usw.
Am Schluss fehlt noch das Schliessen der Datei:
PHP:
fclose($datei);
.
 
gut dann sieht das so aus?!


<?php
$daten="Erstellt: ".date("d.m.Y H:i:s")."<br>";
$daten.=$eintrag."<br><br>";
$daten.="von <a href=mailto:$email>$name</a><br>";
$daten.="seine <a href=http://$homepage>Homepage</a><hr noshade size=1> </a>";
$datenbank = "daten.dat";
$datei = fopen($datenbank,"r+");
$inhalt = fread ($datei, filesize ($datenbank));
fclose($datei);
$eintrag=strip_tags($eintrag);
fwrite($datei, $daten);
?>
stimmt das oder nicht?
 
sorry, aber Du kannst doch nicht erst die Datei schliessen und anschliessend noch etwas hineinschreiben :confused: ;) überhaupt, ist alles etwas durcheinander...

PHP:
<?php
$daten="Erstellt: ".date("d.m.Y H:i:s")."<br>";
$daten.="<br><br>";
$daten.="von <a href=mailto:$email>$name</a><br>";
$daten.="seine <a href=http://$homepage>Homepage</a><hr noshade size=1> </a>";
$datenbank = "daten.dat";
$datei = fopen($datenbank,"r+");
$eintrag=strip_tags($eintrag);
fwrite($datei, ($eintrag . $daten));
fclose($datei);
?>
 
ja da hast du recht bin heut bissel verpeilt.... :-)

aber deins stimmt auch net ganz da wieder nur ein angezeigt wird..... :confused: :confused: :confused:



man ej das is ein scheis mit som gästebuch....
 
ich weiss ja nicht, ob die Datei nach dem Schreiben neu ausgelesen wird für die Anzeige. Wenn nicht, muss natürlich der gesamte Inhalt des Gästebuchs zusammengefasst werden.
Also statt:
PHP:
fwrite($datei, ($eintrag . $daten));
lieber:
PHP:
$eintrag.=$daten;
fwrite($datei, $daten);
 
Ich habs mal ausprobiert.... es tut sich nichts.... am besten ich schreib hier die beiden php codes mal hin...


hier wird alles ausgelesen:

PHP:
<?php
$datenbank = "daten.dat";
$datei = fopen($datenbank,"a");
fpassthru($datei);
?>

und hier wird sie gespeichert.... das ist der momentane code mit den Hinweisen aus diesem Forum
PHP:
<?php
$daten="Erstellt: ".date("d.m.Y H:i:s")."<br>";
$daten.="<br><br>";
$daten.="von <a href=mailto:$email>$name</a><br>";
$daten.="seine <a href=http://$homepage>Homepage</a><hr noshade size=1> </a>";
$datenbank = "daten.dat";
$datei = fopen($datenbank,"r+");
$eintrag=strip_tags($eintrag);
$eintrag.=$daten;
fwrite($datei, $daten);
fclose($datei);
?>


kann mir jemand sagen warum die datei nicht richtig ausgelsen wird oder liegt es wo anders dran?
 
Okay, da war also die Variable $eintrag leer, oder? Denn passthru( ... ) legt die Daten ja nicht in einer Variablen ab...
Hier also komplett mit Kommentaren:
PHP:
<?php
// der Anfang unverändert, ist klar...
$daten="Erstellt: ".date("d.m.Y H:i:s")."<br>";
$daten.="<br><br>";
$daten.="von <a href=mailto:$email>$name</a><br>";
$daten.="seine <a href=http://$homepage>Homepage</a><hr noshade size=1> </a>";
// HTML-Zeichen maskieren:
$daten = htmlspecialchars( $daten );
// Slashes entfernen, Zeilenumbrüche erhalten:
$daten = stripslashes( nl2br( $daten ) );
// Dateiname in var:
$datenbank = "./daten.dat";
// Datei öffnen:
$datei = fopen( $datenbank, "r+" );
// alte Einträge auslesen und in $eintrag ablegen:
$eintrag = fread( $datei, filesize( $datenbank ) );
// eine var für Trennung zwischen den Einträgen,
// kann natürlich auch anders aussehen:
$separator = "<br>\n----------<br>\n";
// zusammensetzen: neuen Eintrag ($daten) + 
// Zeilenumbruch ($separator) + alte Einträge ($eintrag)
$eintrag = $daten . $separator . $eintrag;
// Cursor an Dateianfang setzen:
rewind($datei);
// alles in Datei schreiben:
fputs($datei,"$eintrag");
// Datei schliessen:
fclose($datei);
// dann Datei wieder komplett anzeigen...
?>
Trotzdem guten Rutsch ;)
 
Zuletzt bearbeitet:
und noch was:
wenn du die untersten Einträge einer Datei als 1. Ausgeben willst:

PHP:
 $daten=file("deinedatei.dat"); // Ließt eine Datei in ein Array, 1 Zeile der Datei = 1 Arrayelement
 for ($i=count($daten)-1; $i>=0; $i--) {
 		// Dann hier die einzelnen Zeilen bearbeiten mit $daten[$i]
 		// Z.B. echo $daten[$i];
 		// oder $e=explode("deintrennzeichen", $daten[$i]);
 		// etc.
 }

hoffer, ich konnte dir damit helfen !
 
Status
Nicht offen für weitere Antworten.
Zurück