Usermanagement

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

  • Original geschrieben von jOhnny knOx
    Rechnen ? Ist nicht möglich einfach auszulesen, ob der jeweilige User gerade online (eingeloggt) oder offline (ausgeloggt) ist ?
    und wo willst du da bitte nachschauen?
    du musst dir schon selbst ne stelle einrichten, an der du schauen kannst
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • Original geschrieben von mrhappiness
      du könntest in ner neuen spalte die session-id speichern, wenn der user sich ausloggt, setzt du den wert der spalte auf NULL
      wenn du sagts: nach 15 minuten inaktivität soll er als offline erscheinen, musst du natürlich rechnen (vorausgesetzt du speicherst irgendwo zeit und datum der letzten aktion des user
      Wie würde das denn gehen, dass wenn der User den Browser schliesst (sich ausloggt), dass dann ein UPDATE mittels mysql_query durchgeführt wird ?

      Zudem möchte ich sagen, dass wenn ein User inaktiv ist, dass er immernoch als online gilt, da er ja noch auf der Seite ist. Hierzu wollte ich noch fragen wie man denn die Zeit (idle time) auslesen könnte ?

      Kommentar


      • wie mans macht:

        bei jeder aktion wird die db (lastaction) auf das aktuelle datum aktuellisiert. wer länger als 30 min nicht aktualisiert wurde, wird nicht gewertet.

        aber warum ignorierst du meine beiträge?

        Kommentar


        • Original geschrieben von mrhappiness
          du könntest in ner neuen spalte die session-id speichern, wenn der user sich ausloggt, setzt du den wert der spalte auf NULL
          wenn du sagts: nach 15 minuten inaktivität soll er als offline erscheinen, musst du natürlich rechnen (vorausgesetzt du speicherst irgendwo zeit und datum der letzten aktion des user
          der erste satz sollte ja wohl kein problem darstellen oder?

          Original geschrieben von jOhnny knOx

          Wie würde das denn gehen, dass wenn der User den Browser schliesst (sich ausloggt), dass dann ein UPDATE mittels mysql_query durchgeführt wird ?
          gar nicht, weil php das nicht mitbekommt

          Original geschrieben von jOhnny knOx

          Zudem möchte ich sagen, dass wenn ein User inaktiv ist, dass er immernoch als online gilt, da er ja noch auf der Seite ist. Hierzu wollte ich noch fragen wie man denn die Zeit (idle time) auslesen könnte ?
          Ich dachte das stünde in dem zweiten satz, den du eben zitiert hast und ich jetzt auch nochmal...
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • Dann ist es doch garnicht möglich zu sehen, wann ein User offline geht, oder ?

            Kommentar


            • er ist offline, wenn er sich entweder ausgeloggt het oder wenn er einen von dir frei wählbaren zeitraum lang nicht aktiv war

              beides musst du implementieren und für beides hats du lösungsansätze in den beiträgen von Tobi und mir
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • Ok, das mit dem Ausloggen ist natuerlich eine Möglichkeit, aber auch nicht besonders sinnvoll, denn wer tut das schon bevor er die Seite verlässt... nicht viele.

                Das mit der Inaktivität könnte natürlich gehen, doch wie überprüft man, ob ein User nichts tut ?

                Kommentar


                • Original geschrieben von jOhnny knOx
                  Das mit der Inaktivität könnte natürlich gehen, doch wie überprüft man, ob ein User nichts tut ?
                  so wie ich geschrieben hab:
                  Original geschrieben von mrhappiness
                  wenn du sagts: nach 15 minuten inaktivität soll er als offline erscheinen, musst du natürlich rechnen (vorausgesetzt du speicherst irgendwo zeit und datum der letzten aktion des user)
                  Tobi hat's auch nochmal geschrieben:
                  Original von TobiaZ
                  bei jeder aktion wird die db (lastaction) auf das aktuelle datum aktuellisiert.
                  Soll ich's nochmal schreiben?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • doch wie überprüft man, ob ein User nichts tut ?
                    Hirn?

                    -> Man ruft bei imh zu Hause an und fragt, was er macht!

                    Kommentar


                    • Original geschrieben von TobiaZ
                      Hirn?
                      -> Man ruft bei imh zu Hause an und fragt, was er macht!
                      OffTopic:

                      ist keine gute idee
                      was machst du, wenn der nen analog-anschluss hat mit modem
                      dann ist da besetzt, und nu?

                      besser, man steigt ins auto , fährt hin und klingelt sturm. so bekommt man
                      auch gleich ein viel besseren eindruck von seinen usern

                      Kissolino.com

                      Kommentar


                      • trotz allem versteh ich nicht was ich nun tun soll

                        Kommentar


                        • ok, ganz langsam zum mitschreiben
                          1. deine tabelle um eine spalte session (datentyp: varchar länge 32 zeichen) erweitern
                          2. deine tabelle um eine spalte lastaction (datentyp: datetime) erweitern
                          3. wenn sich ein user einloggt, schreibst du bei diesem user in die spalte session die aktuelle session-id und in die spalte lastaction NOW()
                          4. loggt er sich aus, schreibst du NULL in die spalte session
                          5. jedesmal wenn du prüfst, ob ein user eingeloggt ist und er es dann auch tatsächlich ist, schreibst du in die spalte lastaction NOW() rein (den datensatz kriegstdu anhand der userid die du in der session hast)
                          6. wenn du schaun willst, welcher user eingeloggt ist, setzt du die spalte session bei allen USern auf NULL, bei denen der wert (lastaction + INTERVAL 15 MINUTE)<NOW() (entspricht 15 Minuten inaktivität)
                            jetzt kannst du alle user raussuchen, deren session-spalte nicht NULL beinhaltet
                          so, jetzt sollte es aber klar sein

                          wenn du nich weiterkommst, poste einfach, aber schreib auch hin wie du's probiert hast und wo du hängst
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • @wurzel: Genial!!!

                            @happy: ich frag schon mal bei Berni, ob er nach Fertigstellung diesen Thread in die Tutorials aufnimmt.

                            Kommentar


                            • zu 1:

                              PHP-Code:
                              session varchar(32) DEFAULT '' NULL 
                              zu 2:

                              PHP-Code:
                              last_action datetime DEFAULT '' NOT NULL 
                              zu 3:

                              PHP-Code:
                              mysql_query("UPDATE $user_tname SET last_action='NOW()', session='".$_SESSION['id']."', last_time='$d_time', last_date='$d_tdy' WHERE id='".$_SESSION['user_id']."'"); 
                              Logge ich mich nun ein und gucke in mysqladmin, sehe ich, dass sich da garnichts tut. last_action ist nach wie vor: 0000-00-00 00:00:00 und session total leer, also Wertlos.

                              zu 4:

                              PHP-Code:
                              mysql_query("UPDATE $user_tname SET session='NULL' WHERE id='".$_SESSION['user_id']."'"); 
                              Hierbei kriegt die Spalte session den Wert NULL. last_action ist nach wie vor: 0000-00-00 00:00:00.

                              zu 5:

                              PHP-Code:
                              $oncheck mysql_query("UPDATE $user_tname SET last_action='NOW()' WHERE session='NOT NULL'") or die (mysql_error()); 
                              zu 6:

                              PHP-Code:
                              $online mysql_query("UPDATE $user_tname SET session='NULL' WHERE last_action + INTERVAL 15 MINUTE < NOW()") or die (mysql_error()); 

                              Kommentar


                              • dann mach doch erstmal nen myslerror und nen echo vom query!!

                                aber es ist ja nicht so, dass ich das schon ein paar mal gesagt hätte...

                                Kommentar

                                Lädt...
                                X