[Script] Wer ist online Script - Einmal anders?!

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

  • [Script] Wer ist online Script - Einmal anders?!

    Hallo Leute,

    Mein erster Beitrag hier in diesem Forum aber für mich gibt es keinen anderen Ausweg und ich denke ich bin sehr stark auf eure Hilfe angewiesen. Mein Vorhaben ist etwas komplex und da meine PHP Kenntnisse einfach nicht soweit reichen, benötige ich ganz dringend eure Hilfe.

    Ich habe folgendes Problem:
    Ich besitze eine private Homepage welche ich desöfteren aktualisiere,Fotos draufstelle etc. den üblichen Quatsch eben Jetzt im neuen Jahr habe ich mir aber gedacht ich erstelle ein Login Script, sodass sich die User registrieren müssen und anschließend einloggen um bestimmte Bereiche meiner Homepage sehen zu können. Nach langem hin und her haut das nun wunderschön hin und es funktioniert alles. Freunde,Bekannte usw. haben sich auch schon registriert und es sind im Moment an die 20Leute registriert.

    Das alles läuft über mysql wo ich bei phpmyadmin eben immer sehe wer sie wann registriert hat usw. Also wie gesagt es funktioniert alles, jedoch würde ich gerne folgendes zusätzlich einbauen.

    Man weiß nie wann wer gerade in diesem "Privaten Bereich" ist wo nur registrierte Mtglieder Zutritt haben. Ich hätte jetzt gerne eine Statistik welche ich auf meiner Seite einbauen kann welche folgendes beinhaltet:

    -Es sind gerade 2Gäste und 4Benutzer online.
    -Franz, Karli, Peter, Fritz sind gerade online.
    -Insgesamt waren bisher 123559 Besucher auf der Seite und 39485 waren Bereits im privaten Bereich der Seite.

    Ist sowas denn überhaupt machbar? Oder würde das einfach nicht funktionieren wenn man sich relativ wenig damit auskennt?

    Zur Erklärung vielleicht folgendes:
    Meine "normale" Seite läuft über ein CMS. Wenn man jetzt in den "privaten Bereich" der Seite will kann man auf Login bzw. Registrieren klicken. Wenn man dies erfolgreich erledigt hat, bekommt man auf eine ganz normale HTML Seite welche mit dem CMS nichts zu tun hat. Dort ist eben der private Bereich welcher auf ganz normalen HTML Seiten basiert.

    Wenn jetzt fragen kommen wieso ich nicht die login Funktion von dem CMS genommen habe, muss ich leider darauf antworten das diese nicht 100% mit dem IE funktioniert hat und mir das zu blöd war.

    Vielleicht gibt es hier Leute die sich auskennen und mir eventuell helfen können. Ich habe wirklich keine Ahnung wie sowas zu machen ist.

    Falls das auch noch wichtig ist:
    Wenn sie eine Person registriert, wird diese in meiner Datenbank in der Tabelle "user" gespeichert!

    Ich danke euch schon einmal im Vorraus für eure Hilfe!

    wanted

  • #2
    Such nach "User online" o.ä.

    Alles schon da gewesen. Dürfe aber viel zu individuell für ein Scriptgesuch sein. Also selber machen.

    ich *verschieb* mal nach Projekthilfe. Wobei das Wort dringend dort wohl noch weniger gern gesehen wird.

    Kommentar


    • #3
      Hmm..ich habe eigentlich schon alles durchsucht aber genau dasselbe Problem wie ich scheont niemand zu haben Hab mir aber schon gedacht,dass eine Umsetzung am Unmöglichen grenzt

      Vielleicht kann mir doch wer helfen?

      wanted

      Kommentar


      • #4
        Quatsch. Nur weil es keine Fertig-Variante für DEIN INDIVIDUELLES System gibt, heißt es noch lange nicht, dass dein Vorhaben ans Unmögliche grenzt. Das Prinzip ist hier im Forum oft genug beschrieben worden, muss halt nur speziell für dein System programmiert werden.

        Kommentar


        • #5
          Kannst du denn selbst programmieren?
          Wenn ja, dann hier ein Lösungsantz:
          Dein Benutzer Peter betritt die Seite und loggt sich mit seinem Namen und seinem Kennwort ein. Daraufhin schreibst du einen neuen Datensatz in eine MySQL Tabelle, nennen wir sie online_users. Diese hat den Aufbau User_ID (oder User_name) und Online_timestamp. Du schreibst dann in die Tabelle einfach die User_ID (oder den Namen des Benutzers) und den aktuellen Timestamp.
          "INSERT INTO online_users(User_ID,Online_timestamp) VALUES
          ('".$userID."',UNIX_TIMESTAMP())";

          Jetzt aktualisierst du bei jedem Aufruf einer deiner Seiten diese Tabelle:
          a) Ist der Benutzer noch angemeldet, änderst du den Timestamp.
          "Update online_users SET Online_timestamp = ' " . time() . " ' WHERE User_id = ' " . $aktuelleID. " ' ";
          Dazu benötigst du natürlich die User_ID als $aktuelleID

          b) Ist die Session abgelaufen (der User ist nicht mehr da [Logout] oder der Benutzer hat seit XXXX Sekunden nichts mehr getan) , löschst du die Tabellenzeile mit der User_id:
          "DELETE FROM online_users WHERE Online_timestamp < ' " . time() + XXXX . " ' ";
          Hier benötigst du musst du selbst festlegen, wie lange ein User als online gelten soll (der Wert XXXX)

          Somit hast du in dieser Tabelle immer die aktuellen Benutzer drinstehen.

          "SELECT a.User_ID,a.User_timestamp FROM online_users AS a LEFT JOIN users AS b ON a.User_id = b.User_ID"

          Damit erhälst du die Liste der aktiven User.

          Ich hoffe, ich hab jetzt alles. Hab das jetzt schnell runtergeschrieben.

          Kommentar

          Lädt...
          X