Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Gezielt Datensatz aus txt entfernen
Frage
Hallo,
ich bastel gerade einen Chat in PHP. Alle eingeloggten User werden in einer TXT-Datei gespeichert. Das Eintragen funktioniert soweit auch schon, lediglich beim Ausloggen wird der User nicht aus der Datei entfernt.
Meine Frage daher:
wie kann ich mit PHP die Zeile des Users herausfinden und diese Zeile löschen?
Die TXT-Datei sieht so aus:
[code]
Jens<br>
Heinrich<br>
Wilhelm<br>
...
[/code]
Geschrieben wird beim Login mit folgendem Code:
[code]
$datei=fopen("user.txt","a+");
{
fputs($datei,"$nickname<br> \r\n");
}
fclose($datei);
[/code]
Also Zeile des Users X aufspüren und löschen. Wie stelle ich dies an? Habe im Manual nichts darüber gefunden bzw. ich hab es sicher irgendwie überlesen.
mfg. Jens
Antwort 1 von Nessus
Hi,
Du liest alles in ein Array ein und suchst dann den betreffenden Teil und entfernst ihn. Natürlich dann das File wieder zurückschreiben.
Aber warum haust Du nicht alles gleich in eine DB?
Oder Du arbeist mit Sessions, das ist auch OK.
Grüße mir die Rindviecher ;-)
Nessus
Du liest alles in ein Array ein und suchst dann den betreffenden Teil und entfernst ihn. Natürlich dann das File wieder zurückschreiben.
Aber warum haust Du nicht alles gleich in eine DB?
Oder Du arbeist mit Sessions, das ist auch OK.
Grüße mir die Rindviecher ;-)
Nessus
Antwort 2 von -do_john_86-
Hallihallöchen Nessus,
in die Datenbank möchte ich das nicht schreiben, da mich sonst mein Provider umbringt. Der MySQL-Server ist nicht der localhost...und Du weißt ja wie gerne Provider solche Chat-Scripte sehen :-)
Sessions, was ist das? :-) Nein, also das hier ist mein erster Chat und ich arbeite ganz primitiv nur mal zum Testen ob es funktioniert. Keine Registrierung, etc. - der Nickname wir aus einem Input-Feld übernommen und an jede Seite in Form einer Variablen übertragen, also user.php?nickname=Jens , etc.
Das Ausschmücken kommt später.
D.h. ich kann mit PHP nicht direkt auf das File zugreifen, sondern ich muss ALLES erst auslesen und die ganze TXT ohne den gelöschten Datensatz neu schreiben?
Ich versuche es mal.
Kuh Berta habe ich gegrüßt :-)
Jens
in die Datenbank möchte ich das nicht schreiben, da mich sonst mein Provider umbringt. Der MySQL-Server ist nicht der localhost...und Du weißt ja wie gerne Provider solche Chat-Scripte sehen :-)
Sessions, was ist das? :-) Nein, also das hier ist mein erster Chat und ich arbeite ganz primitiv nur mal zum Testen ob es funktioniert. Keine Registrierung, etc. - der Nickname wir aus einem Input-Feld übernommen und an jede Seite in Form einer Variablen übertragen, also user.php?nickname=Jens , etc.
Das Ausschmücken kommt später.
D.h. ich kann mit PHP nicht direkt auf das File zugreifen, sondern ich muss ALLES erst auslesen und die ganze TXT ohne den gelöschten Datensatz neu schreiben?
Ich versuche es mal.
Kuh Berta habe ich gegrüßt :-)
Jens
Antwort 3 von Nessus
Hi,
wg. den Username-Einträgen musst Du Dir keine Sorgen machen, Du erzeugst nicht allzu viel Traffic.
Ich würde dies mit Session lösen. Einfach jeder Session eine Lifetime verpassen und nach Ablauf der Zeit diese löschen. So kannst Du auch jeden User kicken der länger als ein paar Minuten stumm ist. Einfach bei jedem Userbeitrag die Lifetime der Session neu schreiben.
Nessus
wg. den Username-Einträgen musst Du Dir keine Sorgen machen, Du erzeugst nicht allzu viel Traffic.
Ich würde dies mit Session lösen. Einfach jeder Session eine Lifetime verpassen und nach Ablauf der Zeit diese löschen. So kannst Du auch jeden User kicken der länger als ein paar Minuten stumm ist. Einfach bei jedem Userbeitrag die Lifetime der Session neu schreiben.
Nessus
Antwort 4 von -do_john_86-
Moin,
da fängt mein Verständnis schon an zu stottern...die Session wird doch lokal im Browser gespeichert und wie bekomme ich die Sessions der verschiedenen User zu einer User-Liste zusammen?
Jens
da fängt mein Verständnis schon an zu stottern...die Session wird doch lokal im Browser gespeichert und wie bekomme ich die Sessions der verschiedenen User zu einer User-Liste zusammen?
Jens
Antwort 5 von Nessus
Hi,
verwechle bitte nicht Session mit Cookie!
Sessiondaten werden auf dem Server gespeichert.
Nessus
verwechle bitte nicht Session mit Cookie!
Sessiondaten werden auf dem Server gespeichert.
Nessus

