Ankündigung

Einklappen
Keine Ankündigung bisher.

wenn user sich nicht ausloggt

Einklappen

Neue Werbung 2019

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

  • wenn user sich nicht ausloggt

    Morgen,

    wenn sich meine user anmelden wird in der membertabelle der onlinestatus von 0 auf 1 gesetzt. wenn er online ist sehen alle anderen somit das er on ist.

    kleine zwischenfrage: würdet ihr das so machen? Feststellen anhand 0 und 1?

    wenn er sich dann ausloggt wird on_off wieder auf 0 gesetzt. aber was wenn er das nicht nun und das fenster einfach schließt? okay die session wird glaub innerhalb von 30 min eh gelöscht aber der status ändert sich nicht von selbst. er wird somit dauerhaft für andere als on angezeigt obwohl er es nicht ist.

    wie kann man das ändern? Danke.


  • #2
    Speicher bei jedem Request die aktuelle Zeit anstatt des Flags und interpretiere diese für die Onlinestatusanzeige.

    Kommentar


    • #3
      Versteh ich nicht.

      Ich nutze kein $_REQUEST, übergebe alles mit session, get oder post.

      Meinst du bei jedem login wird beim member ein timestamp gepeichert. sagen wir 10 min. und wenn ein anderer user das profil oder die onlineliste sieht und timestamp>(timestamp vor 10 min) ist wird er als off angezeigt oder wie?

      dann muss aber doch bei jeder neuen aktion des users eine neue zeit gepeichert werden.?hm...

      Kommentar


      • #4
        "Bei jedem Request" hat nichts mit $_REQUEST zu tun. Request ist eine Anfrage an den Server, eine (beliebige) Aktion des Benutzers. D.h., wenn du jedesmal, sobald der Benutzer auch nur irgendwo hinklickt, den Zeitstempel davon speicherst, weißt du, wann er zuletzt aktiv war.
        Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
        Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

        Kommentar


        • #5
          Zitat von alex9787 Beitrag anzeigen
          dann muss aber doch bei jeder neuen aktion des users eine neue zeit gepeichert werden.?hm...
          Korrekt, bei jedem (HTTP-)Request wird die aktuelle Zeit in der Datenbank hinterlegt und ausgewertet, indem geschaut wird wie alt der dort gespeicherte Zeitstempel ist. Alle Benutzer mit einem Zeitstempel < (Zeitstempel - X Sekunden) werden dann als Offline interpretiert...

          Kommentar


          • #6
            aahh...ok jetzt hab ichs verstanden. danke sirke und dennis. cu.

            Kommentar


            • #7
              Ich würde vieleicht noch empfehlen einen Cronjob dürber laufen zu lassen. So ist der Anwednungsteil nicht auf Userbezogene Aktivitäten (Requests) abhängig.

              Gruß litter
              Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
              http://www.lit-web.de

              Kommentar


              • #8
                Du brauchst ja auch gar kein Feld das den Onlinestatus anzeigt. Es reicht ja die Spalte mit der letzten Aktion, von daher brauchtst dua uch keinen Cronjob.

                Kommentar


                • #9
                  Zitat von litterauspirna Beitrag anzeigen
                  Ich würde vieleicht noch empfehlen einen Cronjob dürber laufen zu lassen. So ist der Anwednungsteil nicht auf Userbezogene Aktivitäten (Requests) abhängig.

                  Gruß litter
                  Was soll denn der Cronjob machen?
                  Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
                  Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

                  Kommentar


                  • #10
                    Zitat von dennis81 Beitrag anzeigen
                    Was soll denn der Cronjob machen?
                    Der Cronjob schubst ein Script an was den aktuellen Zeitstempel mit dem Zeitstempel der letzten Aktivität in der DB vergleicht und auswertet.

                    Somit kann man auch ein Autologout unabhängig der Session Life Time umsetzen.
                    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                    http://www.lit-web.de

                    Kommentar


                    • #11
                      Zitat von litterauspirna Beitrag anzeigen
                      Somit kann man auch ein Autologout unabhängig der Session Life Time umsetzen.
                      Erklärt trotzdem nicht, wofür der Cronjob zuständig sein soll.

                      Wenn der Timestamp der letzten Aktion zu alt ist, betrachtest du den Nutzer als ausgeloggt - dafür braucht es keinen Cronjob.

                      Kommentar


                      • #12
                        Zitat von ChrisB Beitrag anzeigen
                        Erklärt trotzdem nicht, wofür der Cronjob zuständig sein soll.

                        Wenn der Timestamp der letzten Aktion zu alt ist, betrachtest du den Nutzer als ausgeloggt - dafür braucht es keinen Cronjob.
                        Das erfordert aber, dass zwingend irgendein User einen Request auf der Seite ausführt um das Script auszuführen. Was aber wenn nun keiner mehr online ist bzw. auf der Seite unterwegs ist und mehrere einfach nur das Browserfenster zu gemacht haben ohne sich auszuloggen? Dann wird das Script nicht ausgeführt und somit kann auch keine Zeit verglichen werden. Also einen Cronjob drüber jagen der das immer macht und somit ist das ganze nicht von User Requests abhängig.
                        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                        http://www.lit-web.de

                        Kommentar


                        • #13
                          Zitat von litterauspirna Beitrag anzeigen
                          Das erfordert aber, dass zwingend irgendein User einen Request auf der Seite ausführt um das Script auszuführen. Was aber wenn nun keiner mehr online ist bzw. auf der Seite unterwegs ist und mehrere einfach nur das Browserfenster zu gemacht haben ohne sich auszuloggen?
                          Wen interessiert der eingeloggt/ausgeloggt-Status denn in so einem Fall überhaupt?

                          Dann wird das Script nicht ausgeführt und somit kann auch keine Zeit verglichen werden.
                          Wenn niemand an der Information überhaupt Interesse zeigt - dann muss sie auch nicht ermittelt werden.

                          Also einen Cronjob drüber jagen der das immer macht und somit ist das ganze nicht von User Requests abhängig.
                          Ist und bleibt unnötig.

                          Kommentar


                          • #14
                            Finde ich nicht das, dass unnötig bleibt ganz unabhängig von eingeloggt / ausgelogtt Zustand. Ich wöllte nicht das ein User ewig eingeloggt bleibt wenn er nichts mehr auf der Seite macht oder gar nur den browser schliest ohne sich auszuloggen. Das heist macht der User 10 Minuten nichts auf der Seite so wird er automatisch ausgeloggt.
                            Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                            http://www.lit-web.de

                            Kommentar


                            • #15
                              Aber wozu? Wenn ein User sich nicht selbst ausloggt und niemand mehr auf der Seite ist, gibt es auch niemanden, der erfahren kann, dass der User nicht ausgeloggt ist.
                              http://hallophp.de

                              Kommentar

                              Lädt...
                              X