Session-Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session-Problem

    Ich möchte gerne auf einer Seite anzeigen lassen, welche User online sind.
    Ist ja eigentlich kein Problem, wenn der User sich korrekt an- und abmeldet.
    (z.B. hab ich eine DB-Tabelle 'User', bei der beim Einloggen eingetragen wird, daß er nun online ist)
    Nur, wenn man sich nicht richtig abmeldet, sondern einfach den Browser schließt, ist zwar die Session beendet, aber der DB-Eintrag bleibt.
    Der User ist also schon längst nicht mehr da, wird aber immer noch als anwesend angezeigt.

    Wie mach ich sowas?
    Geht das vielleicht nur mit Cron-Jobs?

    Gibt es vielleicht eine Möglichkeit, Session-Variablen anderer Clients abzufragen?

  • #2
    Such doch erstmal, bevor du hier postest! Das ist in eine Forum schließlich so üblich, und führt bei einem solchen Problem auch zu vielen Lösungen...



    *moralisch_close*

    Kommentar


    • #3
      Sorry, ich habe gesucht, aber nix gefunden.
      (Zugegeben, ich hab nicht lange gesucht und weiß auch nicht genau, nach welchem Stichwort ich suchen soll. Daher mein auch recht allgemein gefasster Titel...)

      Wenn du mir einen Link zu einem solchen Thread hättest, wäre ich auch schon zufrieden.

      Kommentar


      • #4
        Ok, hab jetzt nochmal mehr Zeit bei der Suche investiert.
        Hab jetzt auch einige Threads gefunden, allerdings sind viele davon genauso ergiebig wie dieser, weil das anscheinend ein Problem ist, das viele Leute beschäftigt und mindestens genauso viele Leute nervt.

        Eine zufriedenstellende Lösung hab ich aber nicht gefunden.
        Die einzige, die ich gefunden hab, arbeitet mit timeouts.
        Das find ich aber nicht besonders geschickt, schließlich will ich die Zeit nicht zu lang einstellen, da man sonst z.B. in einem Chat 5 Minuten mit jemandem redet, der nicht mehr da ist. Oder andersrum, nur weil ich kurz aufs Klo gehe, werde ich ausgeloggt.
        Gibt es da wirklich keine elegantere Möglichkeit?

        Kurze technische Frage:
        Werden Session-Variable nur auf Client-Seite gespeichert und per 'POST' mit an den Server geschickt, oder hat der Server auch irgendwelche Informationen gespeichert?
        Kriegt der Server es irgendwie mit, wenn ich meinen Browser schließe?

        Kommentar


        • #5
          Original geschrieben von tijab
          Kurze technische Frage:
          Werden Session-Variable nur auf Client-Seite gespeichert und per 'POST' mit an den Server geschickt, oder hat der Server auch irgendwelche Informationen gespeichert?
          Kriegt der Server es irgendwie mit, wenn ich meinen Browser schließe?
          Auf dem Client wird nur die Session ID gespeichert. Sonst NICHTS. Alles andere liegt auf dem Server.

          Topic:

          User beweget sich
          - nachgucken, ob schon in DB
          - Wenn nicht eintragen mit ID, Zeitpunkt ( JETZT ), [SESSION ID]
          - Wenn schon drin -> update Zeitruam ( JETZT )

          - Lösche alle anderen, bei denen Zeitpunkt länger her als X
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            Original geschrieben von schmalle
            Auf dem Client wird nur die Session ID gespeichert. Sonst NICHTS. Alles andere liegt auf dem Server.
            Aha! Dann muß der Browser doch dem Server irgendwann mitteilen, daß er die Session beendet, sonst weiß doch der Server nicht, ob er die Session-Variablen nun löschen kann, oder nicht. Oder arbeitet der Server auch mit Timeouts?

            Wenn die Session-Variablen alle auf dem Server liegen, muß es technisch doch möglich sein, diese abzufragen. Und zwar nicht nur die eigenen, sondern auch andere. Aber wahrscheinlich wird aus Sicherheitsgründen in php keine solche Funktion zur Verfügung gestellt.


            Wie die Timeout-Version funktioniert, ist mir schon klar. Aber ich finde sie nicht sehr befriedigend.

            Kommentar


            • #7
              Ixch habe dir doch geschrieben wie Du es machen sollst. Mach Dir keinen Kopf um den Server. Der weiss schon, wann er was machen muss
              h.a.n.d.
              Schmalle

              http://impressed.by
              http://blog.schmalenberger.it



              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
              ... nur ohne :-)

              Kommentar


              • #8
                Der Server riecht es aber auch nciht wenn ein User unfreundlicherweise das X gedrückt hat anstatt sich auszuloggen.

                Kommentar


                • #9
                  Original geschrieben von schmalle
                  Mach Dir keinen Kopf um den Server. Der weiss schon, wann er was machen muss
                  Tolle Erklärung, schmalli

                  Ja, der Server hat einen Standardtimeout (1440 Sek.), welche du in php.ini einstellen kannst, wenn der Client sich nach diesem Timeout nicht zurückmeldet, wird die Session quasi gekillt.

                  Kommentar


                  • #10
                    Original geschrieben von em-!x
                    Der Server riecht es aber auch nciht wenn ein User unfreundlicherweise das X gedrückt hat anstatt sich auszuloggen.
                    Dann sieh Dir doch bitte mal an, was ich zum Thema "Zeitpunkt" so von mir gegeben hab ...

                    @asp wer hat denn Dich gefragt?
                    h.a.n.d.
                    Schmalle

                    http://impressed.by
                    http://blog.schmalenberger.it



                    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                    ... nur ohne :-)

                    Kommentar


                    • #11
                      Original geschrieben von schmalle

                      @asp wer hat denn Dich gefragt?
                      Die Frage könnte ich Dir auch stellen, denn wenn du mal die Startseite anschaust, wirst du feststellen, dass dich keiner gefragt hat, und zwar wegen: (moderiert von: Abraxax, asp2php, Berni, goth, MoRtAlAn, Titus)

                      Kommentar


                      • #12
                        Pff
                        h.a.n.d.
                        Schmalle

                        http://impressed.by
                        http://blog.schmalenberger.it



                        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                        ... nur ohne :-)

                        Kommentar


                        • #13
                          So, ab sofort werde ich auch gefragt
                          h.a.n.d.
                          Schmalle

                          http://impressed.by
                          http://blog.schmalenberger.it



                          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                          ... nur ohne :-)

                          Kommentar

                          Lädt...
                          X