User nur einmal angemeldet

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

  • #16
    Was ist, wenn man sich vom PC im Büro, aber auch vom Laptop auf nem Seminar oder zu Hause einloggen will?

    Außerdem geht es nur, wenn cookies aktiviert sind (was man bei nem bezahl-account zwar verlangen kann, aber nicht schön ist).

    Bei gelöschten Cookie neuanmeldung. Ist absolut nicht akzeptabel. Außerdem kann ich mich auch einfach von nem anderen PC anmelden und ein Cookie setzten lassen.

    @faustus: Sorry, wenn ich deine Ideen immer wieder wiederlegen muss.

    Kommentar


    • #17
      hallo tobiaZ und faustus,

      danke für eure vorschläge, aber ich habe einen neuen lösungsansatz:
      in der PHP.ini wird ein verzeichnis definiert, in welchem die session informationen serverseitig gespeichert werden. darin enthallten ist die SID und meine sessionsvariable userid. Ich lese nun ganz einfache diese dateien ein und schaue ob der user eine seission offen hat. da ich es erst heute abend machen kann weis ich noch nicht obs funkt. werde es heute abend posten!

      @ tobiaZ: für uns gilt folgende regel: einmal bezahlt, einen account, einmal live-streaming at time!

      schönen abend
      cheers
      artemis

      Kommentar


      • #18
        Ich hab ja gesagt, du brauchst einfach nur in dem Verzeichnis zu sehen, ob die Session okay ist, oder nicht.

        Kommentar


        • #19
          Kein Problem ToniaZ,

          man versucht ja nur seine Ideen einzubringen, denn oft ist es so, dass man aus Modellen eines anderen seine Perfekte Lösung entwickelt, es hat halt nur der Zündfunke/springende Punkt gefehlt.

          Trotzdem, ich habe noch nie was mit Sessions gemacht, kannst Du mir die Lösung für sein Problem etwas näher erläutern?

          Danke.

          Kommentar


          • #20
            Das ist so ne Sache, Sessions werden bei mir nicht so ausführlich gebraucht. Bei uns besteht ein Grundgerüst, in dem die Sessions verarbeitet werden und ich programmiere nur die passenden Module dazu. Aber ein bisschen Ahnung habe ich auch:

            Mit session_save_path() kannst du den Pfad zu einem Ordner, in dem die Sessions gespeichert werden sollen, bestimmen. Somit kannst du auch später direkt darauf zugreifen. Darauf basiert das ganze.

            Kommentar


            • #21
              Das bedeutet, ich kann eine abgebrochene session wieder aufgreifen und fortführen. Aber dann kann doch jeder von jedem gerät diese session aufgreifen und fortführen oder?

              Kommentar


              • #22
                :-( es ist zum kotzen! Ratet mal was mit den session files passiert, wenn man das browserfenster schliesst, oder einfach auf eine andere seite verzweigt? genau, sie bleiben erhalten. nur wen man session_destroy macht werden sie gelöscht. die ttl hat darauf auch keinen einfluss. ich bin also immern noch gleich weit. ich weis nicht ob ein user meine seite unvorschriftsgemäss verlassen hat. ob man da mit php - standardmitteln überhaupt eine lösung findet....??

                der ansatz, die sache serverseitig zu managen, wäre der richtige. mir gehen aber langsam die ideeen aus, ich hoffe euch nicht....

                Du kannst auch den Sessions sagen, in welches Verzeichnis die gespeichert werden und dann immer überprüfen, ob da was drin ist. Aber ist das nicht alles ziemlich übertrieben?

                @tobiaZ: sorry, ich habe das damals nicht kappiert was du mit diesen session-files gemeint hast. ich musste selber darauf kommen. bin halt ein php-rookie!

                ich halte euch auf dem laufenden.
                cheers
                artemis

                Kommentar


                • #23
                  Wie wäre es denn damit.
                  Du speicherst einfach bei einem login die sessionid mit dem User zusammen in der Datenbank. So.. jetzt musst du bei jeder aktion des users seine sessionid mit der in der Datenbank vergleichen. solange diese identisch sind ist das immer noch der user der sich angemeldet hatte.
                  Logged sich dieser User auf einem 2ten rechner zur gleichen zeit nochmal an, so wird die alte session id in der Datenbank überschrieben. Wenn dann der user der sich zuerst angemeldet hat die nächste aktion tätigt fällt deinem script auf das die sessionids nicht mehr identisch sind und fordnern den user erneut dazu auf sich wieder einzuloggen. so kann keiner der beiden user die sich über den gleichen account zur gleichen zeit versuchen einzuloggen vernünftig arbeiten da sie immer wieder ausgelogged werden.

                  ich weiss nich ob du damit was anfangen kannst, aber das wäre mein lösungsvorschlag zu dem ganzen thema hier.

                  gruss nik

                  Kommentar


                  • #24
                    Die Lösung sollte etwa so aussehen wie niknormal gesagt hat. Nur prüfst du nicht die Session sondern den User in der Datenbank. Zusätzlich setzt du eine timestamp und erneuerst ihn wenn sich der User bewegt. Sollte jetzt ein andere User mit den gleichen Daten kommen wenn der Hauptuser eingeloggt ist, wird er blockiert, da die Daten von User eine andere Sessionid hat. Problem an der Sache, die Weitergabe des Account kannst du damit nicht unterbinden. Nur du kannst unter binden das sich der zweite User zur gleichen Zeit einloggt.

                    Um jetzt festzustellen ob ein User noch aktiv ist, oder einfach nur sein Fenster geschloßen hat ohne sich auszuloggen. Machst du einfach eine Prüfroutine in einer Datei die alle User während einer Bewegung immer nutzen. Hier prüfst du einfach ab ob ein User längere Zeit sich nicht bewegt hat. Sagen wir mal 30 Minuten. Sollte der timestamp älter als 30 Minuten sein, löscht du den Timestamp aus der Datenbank und somit kann sich der User wieder neuanmelden. Du solltes aber auf die lange Wartezeit hinweisen wenn die User sich nicht ausloggen.

                    Das ganze kannst du auch noch mit Cookies unterstützen, indem du bei den Angemeldeten User prüfst ob er schon angemeldet war oder nicht, falls ein Stream länger als 30 Minuten dauert. Auf was du die Lebensdauer setzt für den Cookie kann ich dir jetzt nicht sagen. Aber so hast du auch eine Kontrolle wenn ein User sich nicht länger bewegt.
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #25
                      Muss ich Wotan zustimmen. Klingt noch bischen Professioneller als mein Versuch wobei halt nur zu beachten ist das bei einem fehlenden Logout der nächste Login erst wieder nach ablauf der festgelegten Zeit erfolgen kann.. aber das sachte W. ja auch schon.

                      aber ich hät da noch eine Idee... und zwar zum logout und das ganze mit Java..
                      Es gibt doch befehle die eine seite laden lassen,bzw. ein fenster mit einer seite öffnen, wenn das hauptfenster geschlossen wird, oder ich glaube sogar auch wenn die url in der adresszeile geändert wurde.

                      damit könnte man doch einen automatischen logout realisieren, oder ???
                      vorrausgesetzt javascript ist enabled. Diese seite kann sich dann ja auch automatisch schliessen. und ich denke mal das JS bei der mehrheit der Rechner aktiv ist.

                      gruss, nik
                      Zuletzt geändert von niknormal; 02.11.2002, 03:56.

                      Kommentar


                      • #26
                        Hallo Zusammen,

                        erstmal, besten dank für eure Ausfürungen! Die Idee von Wotan & niknormal waren auch mein ansatz. Wie niknormal richtigerweise erkannt hat, ist der reibunglose aublauf nur dann garantiert, wenn JS akiv ist. Ansonsten gibts ernsthafte probleme; sprich, der user kann sich nicht mehr anmelden! Da ich auch andersweitig auf JS gesetzt habe, wäre das nicht das einzige probelm das ein Client ohne JS unterstützung hätte.

                        Jetzt fehlt mir nur noch das skript das anläuft wenn der browser geschlossen, oder eine andere url gewählt wird. javascript.internet.com wir mir bestimmt auskunft geben!

                        Danke viel mals für eure Hilfe

                        artemis

                        Kommentar

                        Lädt...
                        X