Michael Wölk: x User Online

Hallo,

ich habe eine seite wo sich alle per htaccess am server anmelden.
kann ich nun über PHP rausbekommen wieviele und welche user angemeldet sind?

Danke
MfG
Michael Wölk

  1. Hi

    ich habe eine seite wo sich alle per htaccess am server anmelden.
    kann ich nun über PHP rausbekommen wieviele und welche user angemeldet sind?

    Über HTTP? Garnicht.

    Grüße aus Barsinghausen,
    Fabian

    1. Hi!

      ich habe eine seite wo sich alle per htaccess am server anmelden.
      kann ich nun über PHP rausbekommen wieviele und welche user angemeldet sind?

      Über HTTP? Garnicht.

      Wie ist das eigentlich mit persistenten HTTP/1.1-Verbindungen? Sicher benutzt das heute kaum jemand, aber wäre sowas darüber nicht irgendwie möglich? Man müsste nur wiessen wie der Webserver diese Information der geöffneten Verbindungen speichert und dann sehen ob und wie man drauf zugreifen kann, oder?

      Grüße
      Andreas

      1. Hi Andreas,

        ich habe eine seite wo sich alle per htaccess am server anmelden.
        kann ich nun über PHP rausbekommen wieviele und welche user angemeldet sind?

        Über HTTP? Garnicht.
        Wie ist das eigentlich mit persistenten HTTP/1.1-Verbindungen? Sicher benutzt das heute kaum jemand, aber wäre sowas darüber nicht irgendwie möglich? Man müsste nur wiessen wie der Webserver diese Information der geöffneten Verbindungen speichert und dann sehen ob und wie man drauf zugreifen kann, oder?

        Ja, so _könnte_ das machbar sein. Ich habe es aber noch nicht ausprobiert ;-)

        Allerdings halte ich den Aufwand nicht für vertretbar, um "nur" die angemeldeten User anzeigen zu können, bzw die, die gerade online sind.

        Da scheint es mir doch sinnvoller, Protokolle zu verwenden, die so etwas vorsehen, z.B. IRC etc.
        Eventuell macht da auch ein Java-Applet in Verbindung mit PHP-Sessions Sinn.

        Grüße aus Barsinghausen,
        Fabian

        1. Hi Fabian!

          Ja, so _könnte_ das machbar sein. Ich habe es aber noch nicht ausprobiert ;-)

          ich auch nicht, nur finde ich das Thema sehr interessant, muss mich da wohl mal ein bisschen wieter in die Spezifikation einlesen...

          Allerdings halte ich den Aufwand nicht für vertretbar, um "nur" die angemeldeten User anzeigen zu können, bzw die, die gerade online sind.

          Sicher ;-) Aber es gibt ja auch ernsthaftere Anwendungsgebiete wo diese sichere Widererkennung des Users sehr nützlich sein könnte, zumal nicht so einfach beeinflussbar - wenn man eben persistente Verbindungen vorschreibt - ob das möglich ist/Sinn macht weiß ich allerdings nicht wirklich ;-)

          Da scheint es mir doch sinnvoller, Protokolle zu verwenden, die so etwas vorsehen, z.B. IRC etc.

          Kommt drauf an was macht macht...

          Eventuell macht da auch ein Java-Applet in Verbindung mit PHP-Sessions Sinn.

          Meinst Du jetzt für den "Counter"?

          Grüße
          Andreas

          1. Hi Andreas,

            Ja, so _könnte_ das machbar sein. Ich habe es aber noch nicht ausprobiert ;-)
            ich auch nicht, nur finde ich das Thema sehr interessant, muss mich da wohl mal ein bisschen wieter in die Spezifikation einlesen...

            ACK. Die Frage bleibt auch, ob das die gesmate Route heutzutage unterstützt (nicht nur Server und Client) oder (noch) nicht...

            Allerdings halte ich den Aufwand nicht für vertretbar, um "nur" die angemeldeten User anzeigen zu können, bzw die, die gerade online sind.
            Sicher ;-) Aber es gibt ja auch ernsthaftere Anwendungsgebiete wo diese sichere Widererkennung des Users sehr nützlich sein könnte, zumal nicht so einfach beeinflussbar - wenn man eben persistente Verbindungen vorschreibt - ob das möglich ist/Sinn macht weiß ich allerdings nicht wirklich ;-)

            Klar - Stichwort Online-Banking via SSL. Wenn nicht da, wo dann?

            Da scheint es mir doch sinnvoller, Protokolle zu verwenden, die so etwas vorsehen, z.B. IRC etc.
            Kommt drauf an was macht macht...

            Das ist überall so ;-)

            Eventuell macht da auch ein Java-Applet in Verbindung mit PHP-Sessions Sinn.
            Meinst Du jetzt für den "Counter"?

            Zum Beispiel. Man nehme eine serverseitige Programmiersprache - nicht zwingend JSP, da die Ausgabe der Seiten an sich das nicht erfordern - Tomcat bietet sich aber an, da das Applet (0*0 Pixel groß) mit einem Servlet kommuniziert, die Session-ID (oder was auch immer diesem Zweck erfüllt) überträgt und somit mit "relativer" Sicherheit den Client identifiziert bzw. als "online" markiert. So etwa gesehen auf  zone.msn.com (nein, _das_ ist kein Tomcat *g*). Da ist ASP die Sprache der Wahl, aber wie gesagt, das ist wurscht.

            Grüße aus Barsinghausen,
            Fabian

            1. Hi Fabian!

              ACK. Die Frage bleibt auch, ob das die gesmate Route heutzutage unterstützt (nicht nur Server und Client) oder (noch) nicht...

              Es reichen Server und Client, Router haben mit TCP und HTTP nix am Hut ;-)
              Nur unterstützen nicht alle Clients persistente HTTP-Verbindungen.

              Grüße
              Andreas

              1. Hi

                ACK. Die Frage bleibt auch, ob das die gesmate Route heutzutage unterstützt (nicht nur Server und Client) oder (noch) nicht...

                Es reichen Server und Client, Router haben mit TCP und HTTP nix am Hut ;-)
                Nur unterstützen nicht alle Clients persistente HTTP-Verbindungen.

                Meinte ich doch auch nicht *grmbl* *feature-request*
                Proxy... um das klarzustellen.

                Wo wir grade debai sind: Welcher Client kann das denn? Gecko, nehme ich mal an?

                Grüße aus Barsinghausen,
                Fabian

    2. Hi

      Hi,

      Über HTTP? Garnicht.

      man kann nicht sehen wer sich angemeldet hat?
      gibt es da überhaupt keine möglichkeit?

      1. Moin!

        Über HTTP? Garnicht.
        man kann nicht sehen wer sich angemeldet hat?
        gibt es da überhaupt keine möglichkeit?

        Definiere näher, was du sehen willst.

        Du kannst natürlich ein Logfile schreiben (oder das bereits geschriebene vom Apache nutzen), in dem du jede Seitenauslieferung an einen authentifizierten Benutzer loggst.

        Es liegt aber in der Natur von HTTP, dass die Verbindung zum Server nur kurz zum Seitenabrufen hergestellt und danach wieder getrennt wird. Der Besucher ist die meiste Zeit _nicht_ mit dem Server verbunden. Und nur wenn er es wäre, könnte man ihn als "online" zählen. Alle derartigen Anzeigen auf Webseiten geben nicht die technisch korrekten Tatsachen wider, sondern lügen mehr oder weniger stark, indem sie einen Seitenabruf einfach als "den Menschen bewerten wir jetzt für 5 Minuten als 'online'" erfassen. Ob der Computer eine Sekunde nach Seitenauslieferung abstürzt, oder der Mensch den Raum bereits verlassen hat, um direkt nach dem Klick erstmal das WC aufzusuchen, oder ob ein Suchmaschinen-Spider die Seiten abgrast (ok, bei Seiten mit Anmeldung eher unwahrscheinlich) - all das wird nicht berücksichtigt.

        Und es ist ja auch keine wirklich brauchbare Information, weil es niemandem was bringt, wenn er weiß, dass jemand anderes (in den letzten 5 Minuten) auch eine Seite abgerufen hat, weil er mit demjenigen ja nichts anfangen kann, nicht in Kontakt treten etc. Selbst wenn die Seite eine Art ICQ-Mitteilung erlauben würde: Damit der Andere die Nachricht sieht, müßte er eine neue Seite abrufen. Das wird er aber nicht unbedingt tun, oder er wird dafür eine unberechebar lange Zeit benötigen.

        Die Angabe "x User online" ist also reiner Blödsinn.

        - Sven Rautenberg

        --
        Signatur oder nicht Signatur - das ist hier die Frage!
        1. Die Angabe "x User online" ist also reiner Blödsinn.

          sehe ich ja genau so, aber es ging mir mehr oder weniger dadrum:
          ich hab vor die page upzugraden und dazu muss ich wissen ob noch jemand im system ist und etwas posten könnte, das hätte WÄHREND der umstellung fatale folgen, nämlich die das die arbeit umsonst war und ich die umstellung von vorne beginnen kann und es sollte ja eben möglichst schnell gehen.
          kann ich irgendiwe über telnet oder irgenwas sehen ob user angemeldet sind?

          MfG
          Michael Wölk

          1. Hi

            Die Angabe "x User online" ist also reiner Blödsinn.
            sehe ich ja genau so, aber es ging mir mehr oder weniger dadrum:
            ich hab vor die page upzugraden und dazu muss ich wissen ob noch jemand im system ist und etwas posten könnte, das hätte WÄHREND der umstellung fatale folgen, nämlich die das die arbeit umsonst war und ich die umstellung von vorne beginnen kann und es sollte ja eben möglichst schnell gehen.
            kann ich irgendiwe über telnet oder irgenwas sehen ob user angemeldet sind?

            Was willst du denn umstellen? Das ganze sollte in einer Sekunde passieren, sodass kein Prozess dazwischenfunken kann. Wenn du kannst, solltest du den server dafür einfach kurz stoppen.

            Grüße aus Barsinghausen,
            Fabian

            1. Was willst du denn umstellen? Das ganze sollte in einer Sekunde passieren, sodass kein Prozess dazwischenfunken kann. Wenn du kannst, solltest du den server dafür einfach kurz stoppen.

              ne stoppen geht net, weil da einiges drauf läuft.
              ich muss eine kopie einer datenbank machen und dann aus beiden datenbänken bzw. tabellen einträge löschen, sollte 20 sekunden dauern, nur in dem moment darf keiner dazwischen funken.
              ausserdem werden neue funktionen hochgeladen.

              ich weiss aber schon wie ich das mache, trotzdem danke herr #/\ ;-)

              1. Hi

                ne stoppen geht net, weil da einiges drauf läuft.
                ich muss eine kopie einer datenbank machen und dann aus beiden datenbänken bzw. tabellen einträge löschen, sollte 20 sekunden dauern, nur in dem moment darf keiner dazwischen funken.

                Schreib dir doch ein SQL-Script, das sollte *wesentlich* schneller als 20 Sekunden sein.

                Grüße aus Barsinghausen,
                Fabian

              2. Hi!

                ne stoppen geht net, weil da einiges drauf läuft.
                ich muss eine kopie einer datenbank machen und dann aus beiden datenbänken bzw. tabellen einträge löschen, sollte 20 sekunden dauern, nur in dem moment darf keiner dazwischen funken.

                Ja, dafür gibt es LOCK in SQL, damit kannst Du Tabellen für jegliche andere Zugriffe sperren. Solltest Du Dir mal durchlesen ;-)

                ausserdem werden neue funktionen hochgeladen.

                Was für Funktionen? Wenn Du Teile einer Webseite Aktualisieren willst, würde ich die Teile die aktualisiert werden einfach für diesen Zeitraum für Zugriffe sperren, z.B. mit einer .htaccess.

                Grüße
                Andreas

          2. Hi,

            ich hab vor die page upzugraden und dazu muss ich wissen ob noch jemand im system ist

            schaue Dir mit der Apache-eigenen Statusseite an, ob gerade (abgesehen von Deinem Request auf die Statusseite) Requests im Zustand "W" oder "R" sind. Wenn nicht, ist niemand "im System".

            kann ich irgendiwe über telnet oder irgenwas sehen ob user angemeldet sind?

            Jede Anmeldung gilt für exakt einen einzigen Request. In HTTP existiert kein "während".

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes