PHP Sessions auflisten



  • Hi,

    hab es grade geschafft, mit PHP Sessions zu erstellen (ist ja auch nicht sonderlich schwer). 😃
    Nun will ich aber ausgeben, welche Benutzer grade online sind. Wie komm ich also an eine Liste aller Sessions oder so und kann aus jeder den Username auslesen und anzeigen?
    Und wie siehts mit der Performance aus, wenn z.B. 200 (ok, soviele werden es nicht sein, aber jetzt mal theoretisch) User online sind und die Liste bei jedem Seitenaufruf neu generiert wird?

    ChrisM



  • Wenn du die Sessions in einer Datenbank verwaltest kannst du einfach eine SELECT-Abfrage machen! Falls mit Dateien hab ich keine Idee 🙄



  • Hmm... ich nehm die Sessionautomatik von PHP! Also mit session_start(), session_register(), session_destroy() usw., die arbeitet aber glaub ich mit Dateien 😞

    ChrisM



  • Ja, ist normalerweise so eingestellt, das kann man aber mit session_set_save_handler ändern!



  • Und wenn ich das jetzt ohne Datenbank machen will? Weil wenn ich mit session_set_save_handler andere Routinen übergebe, muss ich ja neben Suchefunktion, Connectionfunktion usw. auch eine Routine schreiben, die alte Datensätze löscht (der letzte Parameter von session_set_save_handler).
    Gehts denn nicht irgendwie über PHP Bordmittel, also vielleicht session_getallsessions oder so?

    ChrisM



  • Das mit Datenbank ist auch nicht so wild! AFAIK kommst du ohne Datenbank nur sehr schwer, kompliziert und langsam an die Daten heran!
    Um z.B. eine MySQL-Datenbank als Session-Handler zu verwenden gibts gute Tuttorials im Internet (-> www.google.de)

    Wenn du's mit Dateien machen willst könntest du vielleicht folgendes probieren:
    Temp-Verzeichnis (bzw. das, in dem die Session-Daten abgelegt werden) durchsuchen und für jede gefundene Session-Datei diese mit session_id setzen, um auf die jeweiligen Daten zugreifen zu können!



  • Original erstellt von ChrisM:
    **Und wenn ich das jetzt ohne Datenbank machen will? Weil wenn ich mit session_set_save_handler andere Routinen übergebe, muss ich ja neben Suchefunktion, Connectionfunktion usw. auch eine Routine schreiben, die alte Datensätze löscht (der letzte Parameter von session_set_save_handler).
    Gehts denn nicht irgendwie über PHP Bordmittel, also vielleicht session_getallsessions oder so?

    ChrisM**

    dann nimm ne txt datei

    es gibt keine extra funktion dafür



  • Ich denk, ich machs jetzt doch mit einer Datenbank.
    Wenns noch Probleme gibt, meld ich mich hier. 😃

    ChrisM



  • PS: @flenders: Wenn du zufällig die URL von so einem Tut kennst, kannst du sie mir gerne geben, weil ich jetzt auf Anhieb nichts gefunden habe 😞



  • www.php.net hat jemand noch folgenden Hinweiß dazu geschrieben:
    You need to be careful writing your session read function - it *must* return an empty string ("") if there is nothing to read (e.q. no session or the session expired) - NOT "false". I had a lot of trouble with PHP causing segmentation faults in Apache until I fixed this!

    [ Dieser Beitrag wurde am 26.11.2002 um 16:51 Uhr von flenders editiert. ]



  • Thx für den Link! Am Wochenende werde ich das mal durcharbeiten! 🙂

    ChrisM



  • Eine Problem/Frage: Ich hab mir jetzt Datenbankroutinen programmiert, aber ich trau mich nicht, sie auszuführen, denn ich hab ja noch die Dateisessions und weiß nicht, wo die auf dem Server liegen (auf jeden Fall nicht auf dem Webspace, auf den ich per FTP drauf zugreifen kann :().
    Wenn ich jetzt das Script ausführen würde, würden dann Dateileichen auf dem Server bleiben, weil ja der Standardhandler nicht mehr ausgeführt wird oder glaubt ihr, PHP löscht die nach einiger Zeit von selbst, auch wenn ich meine MySQL-Funktionen verwende?

    ChrisM



  • Wenn mich nicht alles täuscht musst du den Code ja in jedem Script aufrufen, da es nur eine vorübergehende Änderung des Session-Handlers ist (im Gegensatz zum Ändern der php.ini)
    => Du kannst eigentlich nichts kaputt machen! Also einfach ausführen!
    Falls noch Dateien da sind, müssten die nach einiger Zeit auch gelöscht werden (falls nicht, wäre das eh eher ein Problem des Server-Administrators 😉 )



  • Stimmt, da es ja net in meinem Verzeichnis ist, zählts auch net zum Webspace 😃 😃

    *lol* Jetzt geht der Upload net, ich glaub mein PC spürt meine bösen Absichten 😃

    ChrisM


Anmelden zum Antworten