Supportnet Computer
Planet of Tech

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

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

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

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

Antwort 5 von Nessus

Hi,

verwechle bitte nicht Session mit Cookie!
Sessiondaten werden auf dem Server gespeichert.

Nessus

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: