Probleme mit UserOnline...

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

  • Probleme mit UserOnline...

    Vorgeplänkel: Script schreibt IP und LastLog (letzte Aktion) des Users ein. Außerdem noch den Usernamen (wenn angemeldet - sonst GAST). Wenn Benutzer mit gleicher IP raufgeht, wird alter user mit dieser IP gelöscht und neuer User eingetragen mit neuer Lastlog. Außerdem wird überpfrüft, ob jemand 5 minuten nix getan hat --> wird entfernt!

    Zwei wichtige Fragen:
    1. Wie kann ich verhindern, dass ein User rausgeschmissen wird, obwohl er vielleicht nur länger als 5min liest?
    2. Wie unterscheide ich benutzer mit gleicher IP (netzwerk... ICS)

    Danke im Voraus und MfG Harakiri

    PS: Habe die SUche schon genutzt!

  • #2
    zu 1.: du schreibst das du benutzer die 5 minuten nix getan haben automatisch entfernst, also regel dein script wohl die gueltigkeit der session.


    zu 2.: ob man das nun anhand des netzwerkes irgendwie unterscheiden kann weiss ich nicht (glaube eher nicht) du koenntest aber eine session_id fuer jeden benutzer anlegen ... die ID + IP waere eine eindeutige Identifizierung ...

    Kommentar


    • #3
      zu 1.: ja, so läuft es - aber wie ändere ich es um, dass es trotzdem funzt!

      zu 2.: ich probiere das mal aus

      Kommentar


      • #4
        Hmm du muesstest hier mal dein script (teilweise) posten ... denn normalerweise wird eine session nciht einfach so von alleine ungueltig ("so ich hab kein bock mehr ... ich bin nun ungueltig" )

        Kommentar


        • #5
          Ich regel das ja nicht über Sessions... sondern über die letzte User-Aktion! Also wenn der User das letzte mal eine Seite aufruft, wird sein alter Eintrag gelöscht und ein neuer mit neuer Lastlog gesetzt...

          PHP-Code:
          <?php
          $ip 
          getenv("REMOTE_ADDR");
          $now time();
          $past time() - 300//5*60 = 5 Minuten
          $verbindung mysql_connect("XXX","XXX,"XXX");
          mysql_select_db("
          XXX");
          mysql_query("
          DELETE FROM useronline WHERE lastlog '$past'");
          mysql_query("
          DELETE FROM useronline WHERE ip '$ip'");

          if (!session_is_registered('userid')) { //Ich benutze die Sessions vom Login für die Erkennung Gast oder Mitglied
              
          $username = "Gast";
              mysql_query("
          INSERT INTO useronline SET username //Ich benutze die Sessions vom Login für die Erkennung Gast oder Mitglied= '$username', lastlog = '$now', ip = '$ip'");
          }
          else {
              
          $username $nickname;
              
          mysql_query("INSERT INTO useronline SET username = '$username', lastlog = '$now', ip = '$ip'");
          }
          mysql_close($verbindung);
          ?>

          Kommentar


          • #6
            @blobbanana - bitte um hilfe! (auch andere)

            Kommentar

            Lädt...
            X