Gästebucheintrage von unten nach oben

Heyho Leute

Habe wiedermal ein paar Probleme. :?
Ich hab ein simples Gästebuch mit PHP geschrieben.

Hier ist der Code zum einlesen:
[PHP]<?php $eintrag=$_POST[eintrag]; $daten="

Name ".$_POST[name]."
Betreff ".$_POST[betreff]."
Eintrag ".$_POST[eintrag]."


"; $datenbank = "daten.dat"; $datei = fopen($datenbank, "a"); if(empty($eintrag)){} else{ fwrite($datei, $daten);} ?>[/PHP]und hier zum ausgeben:
[PHP]<?php $datenbank = "daten.dat"; $datei = fopen($datenbank, "r"); fpassthru($datei); ?>[/PHP]1. Wie kann ich das einsetzen von HTML-Tags in allen Feldern deaktivieren?
mit dem gehts nicht:
[PHP]$eintrag=strip_tags($eintrag);[/PHP]2. Wie muss ich den Code zur ausgabe so verändern, dass der letzte Eintrag zu oberst ersichtlich ist?

Meine Seite: Xoltec Studios - Startseite

Vielen Dank
Sylnois

Ich würde dir folgendes raten:
htmlspecialchars wandelt < in < um

Desweiteren eine Frage. Hast du keine Datenbank zur Verfügung?
Ein Gästebuch über eine Datei zu regeln empfinde ich nicht als empefehlenswert.

Quatsch, eine Datei ist schon ok, da passen leicht ein paar tausend Einträge rein.

Mit dem file-Befehl alles in ein Array lesen und dann mit array_reverse() umgekehrt ausgeben lassen.

@Gilles danke werde ich gleich mal versuchen
Edit: Hat so funktioniert.
[PHP]$eintrag = str_replace(„<“,„<“,$_POST[eintrag]);[/PHP]
Noch was: Jetzt ersetzt er die Absätze in Leerzeichen.
@sysop Wie soll das gehen? Der Index wird doch bei jeder Aktualiserung auf 0 gesetzt?

du musst doch nur den inhalt deiner bestehenden datei in der datenbank in eine variable auslesen

$inhalt=fopen(„datei“);

Jetzt schreibst du eine neue variable, in der du die variable mit dem neuen sowie dem alten inhalt einfügst:

$neu=„$daten
$inhalt“;

jetzt leerst du deine datenbankdatei, in der vorher der inhalt drin war und schreibst dannach den neuen inhalt rein:

fwrite($datei,„“);
fwrite($datei,$neu);
fclose($datei);

Fertig!!

Hoffe ich konnte helfen^^

Geht irgendwie nicht.

Zum einlesen:
[PHP]$datenbank = „daten.dat“;
$alt = fopen($datenbank, „r“);
$write = fopen($datenbank, „a“);
$neu=$daten.$alt;
fwrite($write, $neu);[/PHP]Zum ausgeben:
[PHP]$datenbank = „daten.dat“;
$datei = fopen($datenbank, „r“);
fpassthru($datei);[/PHP]

Du kannst einfach bei der Ausgabe folgenden Trick gegen das Leerzeichen problem anwenden.
Mit
[PHP]
echo nl2br(‚Nach dem * ensteht eine neue Zeile *
Ich bin eine neue Zeile‘);
[/PHP]
nl2br ersetzt jeden Zeilenumbruch durch einen Html Zeilenumbruch.
Daher musst du bei der Eingabe die Zeilenumbrüche garnicht in HTML Zeilenumrüche umwandeln.

MfG

Tobi

Funktioniert super.
Danke!
Jetzt muss ich nur noch dieses Problem lösen.

Edit:

Habs hingekriegt!

Zum einlesen:
[PHP]$datenbank = „daten.dat“;
$datei = fopen($datenbank, „r+“);
$alt = file_get_contents(„daten.dat“, true);
$neu = $daten.$alt;
fwrite($datei, $neu);[/PHP]

Zum ausgeben:
[PHP]if(file_exists(„daten.dat“)){
readfile(„daten.dat“);
}[/PHP]

Vielen Dank für die Hilfe :smiley: