Wichtig Hab Ein Problem !!!

F

force2k1

Ich hab mal folgenden code gebastelt und möchte aber folgendes anders haben:

1. Beim auslesen soll das was als letztes eingeben wurde ganz oben
also als erstes stehen !

2. wenn man beide felder nicht ausfüllt soll der auch nicht ins der datei.txt schreiben !!!

hier der code:

schreiben:

<?
$gb=fopen("datei.txt","a");
fputs($gb, "<b>".$name."</b><br>".$message."<br><br>");
fclose($gb);
?>


auslesen:

<?
$gb=fopen("datei.txt","r");
while(!feof($gb))
{$zeile = fgets($gb,1000);
echo $zeile;}
fclose($gb);
?>
 
Hoi!

Das ein neuer Eintrag immer oben angezeigt wird, ist recht einfach zu realisieren, jedoch musst du das schon in den schreib-Algorhytmus einbauen:

Code:
//Ersetze die Zeilenumbrüche aus einer textarea durch ein <br> Tag
$text = str_replace(chr(13).chr(10), "<br>", $text);
//Öffne die Datei mit dem Inhalt deines Gästebuchs
$file = fopen("guestebook.txt","r");
//Öffne eine Zusatzdatei zum Auslagern
$tempfile = fopen("temp.txt","w");
//Schreibe in die Auslagerungsdatei den neuen Eintrag
fputs($tempfile,$autor."\n");
fputs($tempfile,$email."\n");
fputs(4tempfile,$text."\n");
//hänge deine guestbook.txt Datei an die Auslaerungsdatei an
while (!feof($file))
		{
           	 $buffer = fgets($file, 100000);
		 fputs($tempfile, $buffer);
		};
//Schließe die Dateien wieder
fclose($file);
fclose($tempfile);
//lösche die eigentliche guestbook.txt Datei
unlink("guestbook.txt");
//Benenne die temp.txt Datei zu guestbook.txt um!
rename("temp.txt","guestbook.txt")

Jetzt stehen neue Einträge immer am Anfang der Datei!

Gruesse

..ooOOipOOoo..
 
nachtrag

Hoi!

Achso... damit der neue Eintrag auch nur eingetragen wird, wenn der Autor sowohl seinen Namen, seine eMail Adresse und einen Text angegeben hat setzt du einfach ne If Bedingung davor:

Code:
if (($autor!="") && ($email!="") && ($text!=""))
    {
     //Hier der restliche Code von oben
    };

Falls du was nicht verstanden hast, einfach fragen!

Gruesse

..ooOOipOOoo..
 
thx

jo cool thx werde es gleich mal ausprobieren ansonsten meld ich mich nochmal !!!

Nochmal thx !!
 
Hi!
Also ich mach das immer anders, und iregndwie find ich meine Methode einfacher! ( Ich hoffe ich habe das Problem richtig verstanden!)

if (($name!="")&&($kommentar!=""))
{
$file = "book.txt";
// das bewirkt, dass wenn der user einen zeilen umbruch macht,
// in der txt file ein <br> eingefügt wird!
$kommentar = nl2br($kommentar);
// die datei wird zum lesen geöffnet
$fp = fopen($file,"r+");
// in $old werden alle alten einträge gespeichert
$old = fread($fp,filesize("$file"));
fclose($fp);
// die datei wird zum schreiben geöffnet
$fp = fopen($file,"w");
fwrite ($fp,"
// hier kommt der neue eintrag rein, wie du ihn auch immer haben
// möchtest :)
$old ");
fclose($fp);
}


ich hoffe ich hab dir geholfen :)
 
Zurück