Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Session

Einklappen

Neue Werbung 2019

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

  • PHP Session

    Hallo Zusammen!

    Ich habe auf meinem Webserver ein Webinterface "programmiert".
    Beim Logout wird in der Spalte Status offline geschrieben... beim Login online...
    Beim Login wird ebenfalls eine Session gestartet.

    Doch jeder kennt die leute, die den Browser einfach Schließen...

    Wie kann ich das machen, dass sich das nicht nur beim Logout ändert, sondern auch, wenn die Session vorbei ist...

    Habe schon gegooglet, aber kam nichts gescheites raus.

    ________________________________
    Mit freundlichen Grüßen


    Simuletsplay

  • #2
    Tja, warum speicherst du den Login-Status auch in der DB wenn du doch die Session als globale Variable immer zur Verfügung hast?

    Kommentar


    • #3
      Ich habe ein Control-Panel, damit ich sehen kann, wer online ist....

      Mit der DB war das die einfachste Variante für mich, weil ich damit jetzt einigermaßen umgehen kann ....


      _________________________________
      MfG

      Simuletsplay

      Kommentar


      • #4
        Du bekommst erstmal nicht mit wenn eine Session beendet wird. Selbst wenn PHP die Session beendet hat hast du nur den Status, dass keine existiert - aber du weisst nicht welche beendet wurde oder wann. Du kannst dir nur alle aktuellen Sessions aus session_save_path() ziehen. Aber das alles behebt dein Problem nicht, weil Browser geschlossen != Session beendet ist. Du reagierst ja immer nur auf konkrete Aufrufe.
        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

        Kommentar


        • #5
          Zitat von Simuletsplay Beitrag anzeigen
          Doch jeder kennt die leute, die den Browser einfach Schließen...

          Wie kann ich das machen, dass sich das nicht nur beim Logout ändert, sondern auch, wenn die Session vorbei ist...

          Habe schon gegooglet, aber kam nichts gescheites raus.
          Das Thema wurde hier schon gefühlte 500mal behandelt. Du solltest nicht den Status "online" oder "offline" in die Datenbank speichern, sondern den Timestamp der letzten User-Aktion. Dann legst du eine Hausnummer fest (z.B. 15 Minuten), ab wann der User als offline gilt und fertig ist die Geschichte.

          Kommentar


          • #6
            Wie funktioniert das denn in Foren? Sobald ich ja meinen Browser schließe, steht ja ein Offline status!

            Kommentar


            • #7
              Zitat von Simuletsplay Beitrag anzeigen
              Wie funktioniert das denn in Foren? Sobald ich ja meinen Browser schließe, steht ja ein Offline status!
              "In Foren". Hier im Forum schon mal nicht.

              Kommentar


              • #8
                doch... ich sehe doch immer unten links das "icon" grün bzw. grau

                Kommentar


                • #9
                  Das dürfte genauso funktionieren wie hellbringer das beschrieben hat in #5.

                  Kommentar


                  • #10
                    Du kannst die Zeit ja auch mit 2 Min. festlegen dann ist man schneller als offline gelistet.
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #11
                      Wie kann ich das denn machen mit den 2 Minuten?
                      Ich habe versucht irgendwie zu rechnen, aber das funktionierte nicht...

                      Hat jmd ein Bsp oder Link? bzw eine ein Stichwort?

                      Kommentar


                      • #12
                        Wie oben beschrieben. Speichere bei jedem User einen Timestamp den du bei jeden Request dieses Users aktualisierst

                        Bei der Anzeige ob jemand online ist liest du die aus und vergleichst ob älter als 2 Min. oder nicht.

                        Gabs hier schon oft.. Suche mal da sind bestimmt auch Bsp. dabei.
                        The string "()()" is not palindrom but the String "())(" is.

                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar

                        Lädt...
                        X