Ankündigung

Einklappen
Keine Ankündigung bisher.

User Management wie aufgbauen ?

Einklappen

Neue Werbung 2019

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

  • User Management wie aufgbauen ?

    Ich würde gerne für meine Webanwendung die Möglichkeit haben die angemeldeten Benutzer zu überwachen.

    Grundsätzlich sind mir zwei Möglichkeiten bekannt, das eine ist, jeder Benutzer speichert beim Seitenaufruf in einer Sql Tabelle seinen Online Status, die andere Möglichkeit wäre den Session Ordner auszulesen und die nötigen Informationen bei jedem Benutzer in seiner Session zu speichern.

    Wo sind die Vorteile und wie realisiert man sowas am besten? Im weiteren hätte ich gerne die Möglichkeit den Benutzern via jqueryUI Nachrichten senden zu können, beispielsweise wenn man alle Benutzer ausloggen muss.

    Ich hätte dazu die Nachrichten in einer Tabelle gespeichert und jeder User hat ein ajax.autoUpdate Skript laufen welches die Tabelle nach neuen Nachrichten absucht und wenn gefunden in den Browser schreibt.

    Session-Dateien aller Benutzer auslesen oder jeder Benutzer die Angaben in eine Tabelle schreiben lassen?

    Vielen Dank für eure Inputs!

    Gruss

    da.eXecutoR

  • #2
    Letzteres. Operationen über viele Dateien sind performancetechnischer Wahnsinn.

    Kommentar


    • #3
      Okay, danke für deine Antwort.

      Gruss

      eXe

      Kommentar


      • #4
        Grundsätzlich sind mir zwei Möglichkeiten bekannt, das eine ist, jeder Benutzer speichert beim Seitenaufruf in einer Sql Tabelle seinen Online Status, die andere Möglichkeit wäre den Session Ordner auszulesen und die nötigen Informationen bei jedem Benutzer in seiner Session zu speichern.
        Das eine schließt das andre ja nicht aus.
        Wobei ich mich frage, was Du mir "Session Ordner" meinst?

        Ich würd folgende Ansätze beachten
        1. User Verwaltung über Session-Management
        2. Online-Status und letzte Aktivität der User in DB festhalten
        3. CronJob, der alle Xmin/h die DB nach der letzten Aktivität abfragt und bei Inaktivität den Onlinestatus ausschaltet

        EDIT
        Session-Ordner war wohl als physikalischer Ordner im Dateisystem gemeint, den Du für die Session-Informationen verwenden wolltest?!
        Dann gebe ich nikosch recht, das kann zum Wahnsinn werden...

        Kommentar


        • #5
          Als Session Ordner meine ich den, welcher php anlegt. Eine andere Möglichkeit gibt es ja PHP Seitig nicht die Sessions der anderen Benutzer auszulesen oder?

          Grüsse

          Kommentar


          • #6
            Den brauchst aber nicht selbst auslesen. Dazu sind ja Sessions und deren Funktionen da.
            Aber ein User-Management würde ich nie ohne Sessions verwirklichen bzw verwalten wollen...

            Kann sein, daß ICH da Deine Fragestellung nicht richtig verstanden habe?

            Kommentar


            • #7
              Ja, das kann sein. Er will nicht aus Usersicht die Session auslesen, sondern aus Adminsicht ALLE Sessions.

              Kommentar


              • #8
                Ah ja, siehst mal... Vielleicht sollte ich gleich mal Mittag machen um den Kopf frei zu kriegen!
                Steht ja auch gleich im ersten Satz - jetzt wo ich nochmal hingucke...

                Kommentar


                • #9
                  Zitat von Arne Drews Beitrag anzeigen
                  Ah ja, siehst mal... Vielleicht sollte ich gleich mal Mittag machen um den Kopf frei zu kriegen!
                  Steht ja auch gleich im ersten Satz - jetzt wo ich nochmal hingucke...
                  kann doch jedem mal passieren

                  Dann Mahlzeit!

                  Werde ich es wohl so machen dass ich eine Benutzerüberwachung als Tabelle in der DB realisiere.

                  Auf die Idee mit den Session-Files auslesen bin ich nur gekommen weil ich was darüber in meinem neuen Buch gelesen habe. Fands einen interessanten Punkt da die Performance im Admin-Backend ja eh nicht so wichtig ist und man auch 5 Sekunden darauf warten kann zu sehen wer alles eingeloggt ist. Aber mit der Tabelle lässt sich bestimmt auf lange Sicht auch mehr anstellen.

                  Vielen Dank Jungs!

                  eXe

                  Kommentar


                  • #10
                    Glaub mir, im Admincenter 5 Sekunden warten zu müssen kann ganz schön deprimierend sein

                    Kommentar


                    • #11
                      Naja, vor allem hast Du bei Sessiondateien keinen LOCK-Mechanismus, wie es eine DB leisten kann.

                      Kommentar


                      • #12
                        Zitat von nikosch Beitrag anzeigen
                        Naja, vor allem hast Du bei Sessiondateien keinen LOCK-Mechanismus, wie es eine DB leisten kann.
                        Definitiv das letzte Wort.

                        Bin ich richtig im Bild. dass es keine Möglichkeit gibt die Sessions anderer Benutzer via PHP irgendwie direkt aus dem Memory / Cache zu holen? Sodass das LOCK / Timing Problem hinfällig ist.

                        Kommentar


                        • #13
                          Naja, welchem Cache? Sessions sind Arbeitsdaten, die sich normalerweise auch zeitlich verändern. Und dass der Apache alle Sessions im Arbeitsspeicher hält, dürfe ziemlich unwahrscheinlich sein.

                          Kommentar


                          • #14
                            okay, wollte nur sicher sein. Schliesslich will man jeden Tag was dazu lernen

                            Kommentar


                            • #15
                              Du kannst natürlich einen eigenen Sessionhandler schreiben. Der die Sessiondaten nicht auf der Festplattes speichert sondern im Arbeitsspeicher. Z.B. Memcache oder Xcache. Aber bei persistenten Cookies wird das wohl recht viel auf Dauer werden.

                              Kommentar

                              Lädt...
                              X