user-online-script - wer ist wo

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • <!--QuoteBegin-wulfgang+Jan 12 2004, 01:54 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (wulfgang @ Jan 12 2004, 01:54 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> <!--QuoteBegin-Jusso+Jan 11 2004, 08:44 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (Jusso @ Jan 11 2004, 08:44 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->

    Quellcode

    1. if($drin > 0) {
    2.  // IP steht bereits in DB
    3.  $query = "UPDATE `".$tab."` SET `time`='".time()."'";
    4.  $query .= " WHERE `ip`='".$ip."'";
    5.  mysql_query($query);
    6. } else {
    7.  // IP steht noch nicht in DB
    8.  $query = "INSERT INTO `".$tab."` SET";
    9.  $query .= " `time`='".time()."',`ip`='".$ip."'";
    10.  mysql_query($query);
    11. }
    Alles anzeigen
    [/quote]
    das ändern wir ab zu folgendem code:

    Quellcode

    1. if($drin > 0) {
    2.  // IP steht bereits in DB
    3.  $query = "UPDATE `".$tab."` SET `time`='".time()."',`where`='".$where."'";
    4.  $query .= " WHERE `ip`='".$ip."'";
    5.  mysql_query($query);
    6. } else {
    7.  // IP steht noch nicht in DB
    8.  $query = "INSERT INTO `".$tab."` SET";
    9.  $query .= " `time`='".time()."',`ip`='".$ip."',`where`?'".$where."'";
    10.  mysql_query($query);
    11. }
    Alles anzeigen
    [/quote]
    ich merke gerade, dass da unten bei where statt einem = ein ? steht. muss natürlich ein = sein.

  • PHP-Quellcode

    1. <?php
    2. $db_host = "xx";
    3. $db_user = "xx";
    4. $db_passwd = "xx";
    5. $db_name = "xx";
    6. $tab = "user_online";
    7. $time_to_del = 30*60;
    8. $diff = time()-$time_to_del;
    9. $ip = $_SERVER['REMOTE_ADDR'];
    10. $ver = mysql_connect($db_host,$db_user,$db_passwd);
    11. mysql_select_db($db_name);
    12. mysql_query("DELETE FROM `".$tab."` WHERE time < ".$diff."");
    13. $qdrin = "SELECT COUNT(*) FROM `".$tab."`";
    14. $qdrin .= " WHERE `ip`='".$ip."'";
    15. list($drin) = mysql_fetch_row(mysql_query($qdrin));
    16. if($drin > 0) {
    17. // IP steht bereits in DB
    18. $query = "UPDATE `".$tab."` SET `time`='".time()."',`where`='".$where."'";
    19. $query .= " WHERE `ip`='".$ip."'";
    20. mysql_query($query);
    21. } else {
    22. // IP steht noch nicht in DB
    23. $query = "INSERT INTO `".$tab."` SET";
    24. $query .= " `time`='".time()."',`ip`='".$ip."',`where`='".$where."'";
    25. mysql_query($query);
    26. }
    27. $how_many = "SELECT COUNT(*) FROM `".$tab."`";
    28. list($i) = mysql_fetch_row(mysql_query($how_many));
    29. echo "".$i."";
    30. ?>
    Alles anzeigen

    so, dieser code speichert also deine user. nun baruchen wir noch eine funktion, die sie ausliest.

    Quellcode

    1. function showonline() {
    2. global $tab;
    3. $query = mysql_query("SELECT time, ip, where FROM $tab");
    4. while($row = mysql_fetch_array($query)) {
    5.  echo "<p>";
    6.  echo "Zeit: ".$row["time"].",";
    7.  echo "IP: ".$row["ip"].",";
    8.  echo "Ort: ".$row["where"];
    9.  echo "</p>";
    10. }
    11. }
    Alles anzeigen

    mit <?php showonline(); ?> wird die funktion dann aufgerufen und angeziegt, wer wann wo online ist.
    das ist jetzt nur ein grundgerüst, die funktion ist sicher noch erweiterbar, man kann z.b. noch eine tabelle draus machen, das ist sicherlich übersichtlich. aber ich will ja nicht deine arbeit machen, sondern nur dir helfen.
    wenn du also fargen zum code hast, dann frag bitte. eine gute quelle zum verständnis des codes ist meiner meinung nach die php funktionsreferenz. einfach auf <a href='http://www.php.net' target='_blank'>http://www.php.net</a> den namen einer funktion eingeben und schon bekommt man eine rrecht einfach verständliche beschrebing einer funktion geliefert mit ein paar zusätzlcihen informationen und hinweisen, die man beachten sollte, sowie ein paar links zu zusammenhängenden funktionen. so lernt man ziemlich viel dazu.
    ich würde sagen so habe ich mir einen großen teil meiner php-kenntnisse angeeignet. wenn man nach dem "learning-by-doing"-prinuzip verfährt, ist das ungeheuer hilfreich, aber auch sonst nicht unnütz.