Ankündigung

Einklappen
Keine Ankündigung bisher.

User online

Einklappen

Neue Werbung 2019

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

  • Simon9990
    hat ein Thema erstellt User online.

    User online

    Hi Also ich hab hier ein Tutorial "USer online".

    Also das zeigt an wie viele User in den letzten 5 Minuten oder so online waren.
    Aber wie mach ich jetzt eines das anzeigt WELCHE USER in den letzten ppar Minuten online waren??
    Also mit
    Code:
    <?
    $result = mysql_query("SELECT * FROM user WHERE userip LIKE '$ip'");
    ?>
    Das würde warscheinlich nicht gehen oder?
    Da die IPS ja ähnlich sein könnten.
    Aber wie sonst??
    Also hier erst mal das Tutorial:

    Code:
    <?
    $db = mysql_connect($db_host,$db_user,$db_passwort) or die("Konnte Verbindung nicht herstellen: ".mysql_error());
    mysql_select_db($db_name,$db) or die("Konnte Datenbank nicht finden");
    
    $time = explode(" ", microtime());   //Hier gibts die MicroTime  bsp: 0.86646800 1057693054
    $ltime = (double)$time[0];      //der linke teil also 0.86646800. double ist Variablentyp
    $rtime = (double)$time[1];      //der rechte teil also 1057693054. double ist Variablentyp
    $UserId = $ltime + $rtime;  // Hier wird aus beiden teilen in addition(deswegen der Variablentyp) eine 99%ig einzigartige ID erstellt
    $IP = $_SERVER['REMOTE_ADDR'];  // Remote Adresse des Users, oder besser gesagt die IP bsp: 127.0.0.1 (localhost)
    $dummy =""; //Einfach so lassen die brauchen wir später um ein paar Daten zu speichern
    
    $delete_time = $rtime - $online_time; //jetzige Zeit minus unsere $online time
    $query = "DELETE FROM".$tabelle." WHERE TIME < ".$delete_time;
    $delete =  mysql_query($query) or die(mysql_error());
    
    $query = "SELECT IP FROM".$tabelle." WHERE IP = '".$IP."'"; // Query zum Abfragen der IP
    $result = mysql_query($query) or die(mysql_error());
    $dummy = mysql_num_rows($result);
    
    if ($dummy == 0) {                        //wenn IP nicht drinne steht User einfügen
    $ok_query = "INSERT INTO ".$tabelle." (UserID,IP,NAME,TIME) VALUES ('".$UserId."','".$IP."','".$HOST."','".$rtime."')";
    $ok = mysql_query($query) or die("Insert fehlgeschlagen: ".mysql_error());
    }
    $query = "SELECT COUNT(IP) as total FROM ".$tabelle; // Summe der Einträge in der Spalte ID als 'total' auswählen
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);      
    echo "es sind ".$row['total']."user online";
    ?>
    Gruss Simon

  • imported_Ben
    antwortet
    du speicherst bei scriptauruf den timestamp und die ip ab und aktualisierst dann immer den timestamp, wenn eine datei aufgerufen wird.
    voraussetzung ist natürlich die gleiche ip

    für die ausgabe prüfst dann beim jedem scriptaufruf, ob der gespeicherte timestamp um x sekunden kleiner ist, als der aktuelle ..

    fertig ..

    ein tipp.

    es heißt
    Code:
    SELECT irgendwas FROM tabelle WHERE spalte = $ip
    vergess das mit dem LIKE in diesem falle mal .. und les dir besser mal durch, wann das verwendet wird .

    in meinem codebsp. habe ich alle hochkommata etc. weggelassen ..

    grüße ben ..

    Einen Kommentar schreiben:


  • Simon9990
    antwortet
    Ja aber da istz doch nur so ein Script wie ich es bereits habe und dann die Erklärung aber könntest du mir bitte sagen wie ich das machen soll??

    Gruss Simon

    Einen Kommentar schreiben:


  • imported_dirk
    antwortet
    hast du da schon gelesen??

    Einen Kommentar schreiben:


  • Simon9990
    antwortet
    @Dirk aber wie könnte ich das dann machen?
    Würde das funktionieren mit

    SELECT * FROM user WHERE userip LIKE ip ?????

    Gruss Simon

    Einen Kommentar schreiben:


  • imported_dirk
    antwortet
    Zitat von Simon9990
    HI @Ben ja das hab ich jetzt schon bestimmt tasuend mal gelesen
    Aber ich möcte es einfach so wie bei phpbb oder so haben.Also das es anzeigt WER in den LETZTEN PAAR MINUTEN ON WAR.
    Aber wie mach ich daS?

    dirk aber identisch können sie ja gar nicht sein.
    Denn fast jeder Provider teilt dem User bei jedem neustart des Insternets eine neue IP aus.
    Und deshalb wenn das so ginge müsste ich es ja mit LIKE machen.
    Aber wie mach ich es sonst?

    Wäre das illeicht möglich wenn ich die IP und die SESSION auslese und dann vergeliche?'??
    Kann mir bitte jemand mal helfen??

    Gruss SImon
    danke für den hinweis
    mein fehler:
    mein letztes posting musste heißen:
    ähnlich, aber eindeutig!!!
    eine ip ist immer eindeutig.
    d.h. bei einem provider wie z.b t-online wird dir bei jeder einwahl ins
    internet eine neue ip zugewiesem.
    alternative: eine feste ip bei deinem isp.
    sorry für mein versehen.
    dirk

    Einen Kommentar schreiben:


  • Simon9990
    antwortet
    HI @Ben ja das hab ich jetzt schon bestimmt tasuend mal gelesen
    Aber ich möcte es einfach so wie bei phpbb oder so haben.Also das es anzeigt WER in den LETZTEN PAAR MINUTEN ON WAR.
    Aber wie mach ich daS?

    dirk aber identisch können sie ja gar nicht sein.
    Denn fast jeder Provider teilt dem User bei jedem neustart des Insternets eine neue IP aus.
    Und deshalb wenn das so ginge müsste ich es ja mit LIKE machen.
    Aber wie mach ich es sonst?

    Wäre das illeicht möglich wenn ich die IP und die SESSION auslese und dann vergeliche?'??
    Kann mir bitte jemand mal helfen??

    Gruss SImon

    Einen Kommentar schreiben:


  • imported_dirk
    antwortet
    Re: User online

    Zitat von Simon9990
    Da die IPS ja ähnlich sein könnten.
    ähnlich, aber nicht identisch!!!!!!!!

    Einen Kommentar schreiben:


  • imported_Ben
    antwortet
    http://www.dclp-faq.de/q/q-code-user-online.html

    dateibasiertes script ...
    http://www.codeschnipsel.net/index.p...&id=1075379483

    Einen Kommentar schreiben:

Lädt...
X