tomgk: Automatisches Logout

Hallo,

Ich habe eine Seite gamacht wo man sich registrieren kann.

Jetzt möchte ich das eine Login Seite machen, aber: Wie soll ich speichern ob jamand online ist?
MySQL, eine Text-Datei?

Weiterse möchte ich das der User nach einen bestimmten Zeitraum automatisch ausgeloggt wird. Nur wie kann man das machen? Hab keine Idee...

MfG
tomgk

  1. Hi,

    Jetzt möchte ich das eine Login Seite machen, aber: Wie soll ich speichern ob jamand online ist?

    gar nicht. Nachdem Dein Server eine Ressource ausgeliefert hat (und eigentlich schon während dessen er es vorbereitet) existiert kein Weg mehr herauszufinden, ob die Anfordernde Stelle noch mit dem Internet verbunden ist.

    Weiterse möchte ich das der User nach einen bestimmten Zeitraum automatisch ausgeloggt wird. Nur wie kann man das machen? Hab keine Idee...

    Die meisten komplexen serverseitigen Systeme bieten Session-Mechanismen an, die eine solche Funktionalität von Haus aus mit sich bringen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      Jetzt möchte ich das eine Login Seite machen, aber: Wie soll ich speichern ob jamand online ist?

      gar nicht. Nachdem Dein Server eine Ressource ausgeliefert hat (und eigentlich schon während dessen er es vorbereitet) existiert kein Weg mehr herauszufinden, ob die Anfordernde Stelle noch mit dem Internet verbunden ist.

      Nein, das meine ich nicht.
      Ich meine wenn jemand sich bei der Login-Seite einloggt wo speichern das er sich eingeloggt hat?

      MfG
      tomgk

      1. Hi,

        Ich meine wenn jemand sich bei der Login-Seite einloggt wo speichern das er sich eingeloggt hat?

        In der Session.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
      2. Hi!

        Jetzt möchte ich das eine Login Seite machen, aber: Wie soll ich speichern ob jamand online ist?

        gar nicht. Nachdem Dein Server eine Ressource ausgeliefert hat (und eigentlich schon während dessen er es vorbereitet) existiert kein Weg mehr herauszufinden, ob die Anfordernde Stelle noch mit dem Internet verbunden ist.

        Nein, das meine ich nicht.
        Ich meine wenn jemand sich bei der Login-Seite einloggt wo speichern das er sich eingeloggt hat?

        Mit der serverseitigen Sprache Deiner Wahl in einer Session - was benutzt Du denn?

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
        1. Hallo,

          Jetzt möchte ich das eine Login Seite machen, aber: Wie soll ich speichern ob jamand online ist?

          gar nicht. Nachdem Dein Server eine Ressource ausgeliefert hat (und eigentlich schon während dessen er es vorbereitet) existiert kein Weg mehr herauszufinden, ob die Anfordernde Stelle noch mit dem Internet verbunden ist.

          Nein, das meine ich nicht.
          Ich meine wenn jemand sich bei der Login-Seite einloggt wo speichern das er sich eingeloggt hat?

          Mit der serverseitigen Sprache Deiner Wahl in einer Session - was benutzt Du denn?

          xampp

          1. Mit der serverseitigen Sprache Deiner Wahl in einer Session - was benutzt Du denn?
            xampp

            Das ist keine serverseitige Sprache sondern eine Sammlung an Serversoftware.

            1. Mit der serverseitigen Sprache Deiner Wahl in einer Session - was benutzt Du denn?
              xampp

              Das ist keine serverseitige Sprache sondern eine Sammlung an Serversoftware.

              Meinst wie php?

              1. Meinst wie php?

                Nein, PHP ist keine Sammlung an Serversoftware.

                1. @@Mega:

                  Nein, PHP ist keine Sammlung an Serversoftware.

                  Sondern eine Sammlung an Funktionen. Als Sprache kann man das nicht bezeichnen. ;-)

                  Live long and prosper,
                  Gunnar

                  --
                  Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
                  1. Hallo,

                    Wie funktioniert dises session?
                    Kann man es für mein Login-Problem nützen?

                    MfG
                    tomgk

                    1. Hi!

                      Wie funktioniert dises session?

                      Allgemeine Frage: kennst http?
                      Welche Sprache (serverseitig) magst7kannst Du verwenden.

                      Kann man es für mein Login-Problem nützen?

                      Ja.

                      off:PP

                      --
                      "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                      1. Hi Ingrid!

                        Allgemeine Frage: kennst http?

                        Als Nicht-Bayer muss ich zugeben, hier ein 'Du' vergessen zu haben :((

                        off:PP

                        --
                        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                      2. Hallo,

                        Wie funktioniert dises session?

                        Allgemeine Frage: kennst http?
                        Welche Sprache (serverseitig) magst7kannst Du verwenden.

                        Wenns geht PHP

                        Kann man es für mein Login-Problem nützen?

                        Ja.

                        MfG
                        tomgk

                      3. Hi!

                        Wie funktioniert dises session?

                        Allgemeine Frage: kennst http?

                        Server

                        Welche Sprache (serverseitig) magst7kannst Du verwenden.

                        Welche sin möglich

                        Kann man es für mein Login-Problem nützen?

                        Ja.

                        In wiefern?

                        MfG
                        tomgk

                  2. Hi!

                    Nein, PHP ist keine Sammlung an Serversoftware.

                    Sondern eine Sammlung an Funktionen. Als Sprache kann man das nicht bezeichnen. ;-)

                    Ich habe nun zum vierten mal meine Antwort auf Dein Posting gelöscht und mich dazu entschlossen, es einfach zu ignorieren;)

                    off:PP

                    --
                    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                  3. Sondern eine Sammlung an Funktionen. Als Sprache kann man das nicht bezeichnen. ;-)

                    Ja, und das trifft auf jede Programmiersprache zu. Und wie soll diese sinnfreie Aussage nun dem OP helfen?

                    Und wenn PHP keine Programmiersprache ist, sind alle PHP-Programmierer eh blöd, also unter deiner würde, oder?

      3. Hello,

        Ich meine wenn jemand sich bei der Login-Seite einloggt wo speichern das er sich eingeloggt hat?

        Das kommt darauf an, ob Du ein sessionbasiertes "Login" bauen willst oder ein requestbasiertes.

        siehe auch http://forum.de.selfhtml.org/archiv/2008/4/t170126/#m1111727

        Ich vertrete die Meinuung, dass der "Login-Status" in der Sessiondatei nichts zu suchen hat, sondern in die Datenbank gehört. Dort kann man ihn ersten immer keicht abfragen und zweitens auch administrativ verändern.

        Es ist leicher, ein Select oder Update auf die Datenbank abzufeuern, als hunderte von Sessiondateien zu durchforsten, ob sie denn zufällig dem User gehören, den man rausschmeißen will.

        Liebe Grüße aus Syburg bei Dortmund

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hello,

          Aloha 'oe,

          Ich vertrete die Meinuung, dass der "Login-Status" in der Sessiondatei nichts zu suchen hat, sondern in die Datenbank gehört. Dort kann man ihn ersten immer keicht abfragen und zweitens auch administrativ verändern.

          Aber dafür wurde der Session-Mechanismus erfunden. Leicht abfragen kann man den Status auch dort, "administrativ verändern" kann die jeweilige bevorzugte Skriptsprache es auch.

          Es ist leicher, ein Select oder Update auf die Datenbank abzufeuern, als hunderte von Sessiondateien zu durchforsten, ob sie denn zufällig dem User gehören, den man rausschmeißen will.

          In einer zugewiesenen Session hat man (sollte man) nur Zugriff auf die Sessionvariablen des jewiligen zugeordneten Benutzers (haben). Außerdem frage ich mich, wann man in die Situation kommt, "hunderte von Sessiondateien" durchforsten zu wollen. Was hat die Aussage für einen Sinn? Zumindest ich verstehe nicht, auf welche Programmsituation du anspielen willst.

          Sessionbasierte Daten sollten in einem (Überraschung!) Session-Mechanismus gespeichert werden, nicht in einer Datenbank.

          Gruß, Volker

          --
          „I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies."
          - Tony Hoare
          1. Hello,

            Du scheinst Du das System dahinter noch nicht verstanden zu haben.
            Ich warte aber erstmal, ob sich noch jemand zu Wort meldet zum Thema.

            Liebe Grüße aus Syburg bei Dortmund

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Du scheinst Du das System dahinter noch nicht verstanden zu haben.
              Ich warte aber erstmal, ob sich noch jemand zu Wort meldet zum Thema.

              Ihr habt eigentlich beide recht: der Session-Mechanismus speichert Sitzung und Benutzerkennung in einer Datenstruktur (in der Regel ein Hash oder Dictionary), die mit der in einer SQL-fähigen Datenbank gespeicherten Struktur durchaus vergleichbar ist.

              Grundsätzlich gibt es verschiedene Möglichkeiten, die Sitzung zu vergeben: als GET-Parameter, als Cookie oder aber auch IP-basiert, wobei aus Sicherheitsgründen (mehrere PCs von der gleichen Router-IP sind inzwischen wohl eher die Regel als die Ausnahme) von der letzten Variante abzusehen ist.

              Gruß, LX

              --
              X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: Unusual
              X-Please-Search-Archive-First: Absolutely Yes
              1. Du scheinst Du das System dahinter noch nicht verstanden zu haben.
                Ich warte aber erstmal, ob sich noch jemand zu Wort meldet zum Thema.

                Ihr habt eigentlich beide recht: der Session-Mechanismus speichert Sitzung und Benutzerkennung in einer Datenstruktur (in der Regel ein Hash oder Dictionary), die mit der in einer SQL-fähigen Datenbank gespeicherten Struktur durchaus vergleichbar ist.

                Grundsätzlich gibt es verschiedene Möglichkeiten, die Sitzung zu vergeben: als GET-Parameter, als Cookie oder aber auch IP-basiert, wobei aus Sicherheitsgründen (mehrere PCs von der gleichen Router-IP sind inzwischen wohl eher die Regel als die Ausnahme) von der letzten Variante abzusehen ist.

                Gruß, LX

                Könnte mir jemand helfen?

                MfG
                tomgk

                1. Hello,

                  Könnte mir jemand helfen?

                  Bitte wiederhole nicht immer das gesamte Vorgängerposting, sondern nur die relevanten Teile.

                  Hast Du Dir das Kapitel http://www.php.net/manual/en/book.session.php schon durchgelesen?
                  Das solltest Du tun und einige Versuche anstellen. Dazu hast Du dann bestimmt konkrete Fragen, die dir hier gerne beantwortet werden.

                  Liebe Grüße aus Syburg bei Dortmund

                  Tom vom Berg

                  --
                  Nur selber lernen macht schlau
                  http://bergpost.annerschbarrich.de
                  1. Hello,

                    Könnte mir jemand helfen?

                    Bitte wiederhole nicht immer das gesamte Vorgängerposting, sondern nur die relevanten Teile.

                    Hast Du Dir das Kapitel http://www.php.net/manual/en/book.session.php schon durchgelesen?
                    Das solltest Du tun und einige Versuche anstellen. Dazu hast Du dann bestimmt konkrete Fragen, die dir hier gerne beantwortet werden.

                    Ich kann leider noch nicht sehr gut Englisch.

                    MfG
                    tomgk

                    1. Hello,

                      Hast Du Dir das Kapitel http://www.php.net/manual/en/book.session.php schon durchgelesen?
                      Das solltest Du tun und einige Versuche anstellen. Dazu hast Du dann bestimmt konkrete Fragen, die dir hier gerne beantwortet werden.

                      Ich kann leider noch nicht sehr gut Englisch.

                      Dafür gibt es z.B. http://dict.tu-chemnitz.de/ = Beolingus.de. Das ist inzwischen sehr gut. Außerdem kannst Du mitarbiten, um es immer besser zu machen. Frank Richter und sein Team freuen sich über jede gute Idee.

                      Und außerdem kannst Du die Seite auch weitgehend auf Deutsch lesen http://www.php.net/manual/de/ref.session.php. Leider haben die deutschen Übersetzungen oft noch Lücken, sind nicht aktuell oder enthlaten gelegentlich sogar Überstzugnsfehler, die dann in die Irre führen können. Daher haben die meisten Stammposter hier im Forum beschlossen, immer die englische Version zu verlinken. Man kann ja selber umschalten.

                      Um mit Sessions zu spielen, solltest Du Dir als erstes mal ein einfaches Affenformular bauen. Das ist eine PHP-ressource, die ein HTML-Formular ausgibt und beim Post dann wieder auf sich verweist

                      <form name="myform" action="<? echo $_SERVER['SCRIPT_NAME']; ?>"
                              method="post" enctype="multipart/form-data">

                      <!-- hier veschiedene Input-Elemente einbauen, inclusive file-Uload -->

                      <input type="submit" name="btn[save]" value="speichern" />
                             <input type="submit" name="btn[show]" value="bisher gespeicherte Daten ansehen" />

                      </form>

                      Wenn Du das fertig hast, mach Dir mal Gedanken, wie Du von Durchlauf zu Durchlauf immer weitere Daten hinzufügen kannst.

                      Die müssen irgendwo gespeichert werden.

                      Liebe Grüße aus Syburg bei Dortmund

                      Tom vom Berg

                      --
                      Nur selber lernen macht schlau
                      http://bergpost.annerschbarrich.de
                    2. Hi,

                      Ich kann leider noch nicht sehr gut Englisch.

                      der Satz "Bitte wiederhole nicht immer das gesamte Vorgängerposting ..." war aber in leicht verständlichem Deutsch formuliert, das man sogar mit 14 schon kapieren müsste. Was hast du daran nicht verstanden?
                      Also befleißige dich bitte eines anständigen Zitierstils.

                      Ciao,
                       Martin

                      --
                      Niemand ist überflüssig: Er kann immer noch als schlechtes Beispiel dienen.
              2. Hello,

                Ihr habt eigentlich beide recht: der Session-Mechanismus speichert Sitzung und Benutzerkennung in einer Datenstruktur (in der Regel ein Hash oder Dictionary), die mit der in einer SQL-fähigen Datenbank gespeicherten Struktur durchaus vergleichbar ist.

                Die Existenz einer Sessiondatei hat überhaupt nichts mit dem Status der Session und den Rechten des Users zu tun. Die Rechte sollten requestbasiert verwaltet werden, also bei jedem Request aktuell abgefragt werden.

                Es wird hier ein zustandsloses Protokoll mittels einer Session künstlich mit einem Zustand behaftet. das bedeutet aber nicht, dass alle Zustandsdaten in die Sessiondatei (sessionbasiert) gehören würden.

                Auch sollte der "Loginzustand" nicht von der physischen Existenz einer Sessiondatei abhängig gemacht werden, in der Weise, dass das "Logout" durch Löschen dieser Datei durchgeführt wird.

                Es gibt genügend Anwendungsfälle, bei denen ein User seine Trägersession fortsetzen will, aber dies unter einem andern Status tun will, sich also "ummelden" will.

                Und wenn Volker sich nicht vorstellen kann, wie es auf dem System zu hunderten von (aktiven) Sessiondateien kommen kann, dann müssen wir bei Adam & Eva wieder anfangen.

                Liebe Grüße aus Syburg bei Dortmund

                Tom vom Berg

                --
                Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
          2. echo $begrüßung;

            Ich vertrete die Meinuung, dass der "Login-Status" in der Sessiondatei nichts zu suchen hat, sondern in die Datenbank gehört. Dort kann man ihn ersten immer keicht abfragen und zweitens auch administrativ verändern.

            Aber dafür wurde der Session-Mechanismus erfunden. Leicht abfragen kann man den Status auch dort, "administrativ verändern" kann die jeweilige bevorzugte Skriptsprache es auch.

            Da du als Administrator nicht weißt, welche Session-ID der Benutzer X grad hat ist eine administrative Änderung nicht so einfach möglich.

            Es ist leicher, ein Select oder Update auf die Datenbank abzufeuern, als hunderte von Sessiondateien zu durchforsten, ob sie denn zufällig dem User gehören, den man rausschmeißen will.

            In einer zugewiesenen Session hat man (sollte man) nur Zugriff auf die Sessionvariablen des jewiligen zugeordneten Benutzers (haben). Außerdem frage ich mich, wann man in die Situation kommt, "hunderte von Sessiondateien" durchforsten zu wollen.

            Hast du eine bessere Idee, wie man als Administrator sonst die Session-Datei des Anwenders X finden kann, um darin dessen "Eingeloggt"-Zustand zu ändern?

            Sessionbasierte Daten sollten in einem (Überraschung!) Session-Mechanismus gespeichert werden, nicht in einer Datenbank.

            So manch ein Session-Mechanismus (Überraschung!) verwaltet seine Session-Daten in einer Datenbank. Auch PHP kann das mit einem selbst geschriebenen Session-Handler.

            echo "$verabschiedung $name";

  2. Hi!

    Sessions, waere hier eines von vielen Zauberwoertern.

    --
    Trau Dich!
     
  3. Ich habe eine Seite gamacht wo man sich registrieren kann.

    Ich hab dir schon mal gesagt, deine Fragen sind unterirdisch. Und das hier ist thematisch genau das gleiche wie in deinem Login Thread, also ein Doppelposting.

    Struppi.