Ankündigung

Einklappen
Keine Ankündigung bisher.

online script

Einklappen

Neue Werbung 2019

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

  • online script

    PHP-Code:
    <?php
    $MYSQL_Host             
    "localhost";
    $MYSQL_Benutzername     "root";
    $MYSQL_Benutzerpasswort "";
    $MYSQL_database         "test";
    $MYSQL_Table             "onlineScript";
    $ONLINE_TIME             "3";     // Angabe in Minuten

    function online()
    {
        global 
    $MYSQL_Host;
        global 
    $MYSQL_Benutzername;
        global 
    $MYSQL_Benutzerpasswort;
        global 
    $MYSQL_database;
        global 
    $MYSQL_Table;
        global 
    $_SERVER;
        global 
    $ONLINE_TIME;
        
    $ONLINE_TIME $ONLINE_TIME 60;
        
    $MYSQL_connection_id mysql_connect($MYSQL_Host$MYSQL_Benutzername$MYSQL_Benutzerpasswort);
        
    mysql_select_db($MYSQL_database$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
        
    $db_test mysql_query("SELECT `ip` FROM " $MYSQL_Table);
        if (!
    $db_test) {
            
    $create_str "CREATE TABLE `" $MYSQL_Table "` (
                          `ip` varchar(15) NOT NULL default '',
                          `time` int(11) NOT NULL default '0'
                          ) TYPE=MyISAM;"
    ;
            
    mysql_query($create_str$MYSQL_connection_id) or die (mysql_error($MYSQL_connection_id));
        }
        
    $string "SELECT * FROM `" $MYSQL_Table "` WHERE ip = '" $_SERVER["REMOTE_ADDR"] . "'";
        
    $qury_id mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
        
    $row mysql_fetch_array($qury_id);
        if (
    $row['ip'] == "") {
            
    $string "INSERT INTO `" $MYSQL_Table "` (ip, time) VALUES ('" $_SERVER["REMOTE_ADDR"] . "', '" time() . "')";
            
    mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
        } else {
            
    $string "UPDATE `" $MYSQL_Table "` SET time= '" time() . "' WHERE ip = '" $_SERVER["REMOTE_ADDR"] . "'";
            
    mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
        }
        
    $string "DELETE FROM `" $MYSQL_Table "` WHERE time < '" intval(time()-$ONLINE_TIME) . "'";
        
    mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
        
    $string "SELECT * FROM `" $MYSQL_Table "` WHERE time > '" intval(time()-$ONLINE_TIME) . "'";
        
    $qury_id mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
        
    $i mysql_num_rows($qury_id);
        return 
    $i;
    }

    echo 
    online();

    ?>
    Das script installiert sich von selbst in der mysql datenbank und naja macht hat als rückgabewert die anzahl der leute die online sind

    ist mal aus ziemlicher langeweile entstanden vll kanns ja noch wer gebrauchen


  • #2
    Hi,

    Mal abgesehen davon, dass ich von diesen online Anzeigen nichts halte, weil es eher ein Raten ist, würde ich auf die globalen Variablen verzichten. Diese sind immer ein Zeichen für schlechtes Design, weil sie fehleranfällig sind. Du musst doch nur die benötigten Variablen als Parameter der Funktion übergeben und schon kannst du auf diese Krücke verzichten.

    Eine andere Möglichkeit wäre, Konstanten zu definieren, der der User setzen muss, aber ich würde bei der Übergabe als Parameter bleiben.

    Gruß Thomas

    Kommentar


    • #3
      PHP-Code:
      <?php
      function online($MYSQL_Host,$MYSQL_Benutzername,$MYSQL_Benutzerpasswort,
      $MYSQL_database,$MYSQL_Table,$ONLINE_TIME)
      {
      $_SERVER;
          
      $ONLINE_TIME $ONLINE_TIME 60;
          
      $MYSQL_connection_id mysql_connect($MYSQL_Host$MYSQL_Benutzername$MYSQL_Benutzerpasswort);
          
      mysql_select_db($MYSQL_database$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
          
      $db_test mysql_query("SELECT `ip` FROM " $MYSQL_Table);
          if (!
      $db_test) {
              
      $create_str "CREATE TABLE `" $MYSQL_Table "` (
                            `ip` varchar(15) NOT NULL default '',
                            `time` int(11) NOT NULL default '0'
                            ) TYPE=MyISAM;"
      ;
              
      mysql_query($create_str$MYSQL_connection_id) or die (mysql_error($MYSQL_connection_id));
          }
          
      $string "SELECT * FROM `" $MYSQL_Table "` WHERE ip = '" $_SERVER["REMOTE_ADDR"] . "'";
          
      $qury_id mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
          
      $row mysql_fetch_array($qury_id);
          if (
      $row['ip'] == "") {
              
      $string "INSERT INTO `" $MYSQL_Table "` (ip, time) VALUES ('" $_SERVER["REMOTE_ADDR"] . "', '" time() . "')";
              
      mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
          } else {
              
      $string "UPDATE `" $MYSQL_Table "` SET time= '" time() . "' WHERE ip = '" $_SERVER["REMOTE_ADDR"] . "'";
              
      mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
          }
          
      $string "DELETE FROM `" $MYSQL_Table "` WHERE time < '" intval(time()-$ONLINE_TIME) . "'";
          
      mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
          
      $string "SELECT * FROM `" $MYSQL_Table "` WHERE time > '" intval(time()-$ONLINE_TIME) . "'";
          
      $qury_id mysql_query($string$MYSQL_connection_id) or die(mysql_error($MYSQL_connection_id));
          
      $i mysql_num_rows($qury_id);
          return 
      $i;
      }

      echo 
      online("localhost","root","pw","test","onlineScript",3);

      ?>
      so habs mal angepasst stimmt auch ohne globale isses sauberer

      Kommentar

      Lädt...
      X