PX : code

User Counter by Francisco Charrua
Rating: 5.00
Download this code


<?php
$Host 
=           "localhost";
$User =           "User"
$PassWord =       "PassWord"
$DataBaseName =   "DataBaseName"
$TableName =      "users";
$TimeOut =        1200//In seconds.

mysql_connect($Host$User$PassWord);
mysql_select_db($DataBaseName);

//This below will create your table for you if it does not exist.
//Feel free to comment it out once the table is created.
$Tables mysql_query("show tables");
$TableNameExits false;
while(
$Table mysql_fetch_row($Tables))
     {
     if(
$Table[0] == $TableName)
        
$TableNameExits true;
     }
if(
$TableNameExits == false)
  {
  
$create "create table " $TableName .
            
"(" .
            
"id int primary key auto_increment, " .
            
"ip varchar(20), " .
            
"url varchar(255), " .
            
"time int " .
            
")";
  
  
mysql_query($create);
  }
//This above will create your table for you if it does not exist.
//Feel free to comment it out once the table is created.

$time time();
//Because of all those users with an ever changing ip address, 
//the right-most integer is cut off.
$ip substr($REMOTE_ADDR0strrpos($REMOTE_ADDR"."));
$url $PHP_SELF;

//Is there a record of that user looking at that page?
$select "select id from " $TableName 
          
" where ip = '" $ip 
          
"' and url ='" $url "'";
$users mysql_query($select);
if(
mysql_num_rows($users) > 0)
  {
  
//If there is, update it.
  
$update "update " $TableName " set time  = " $time 
            
" where ip = '" $ip 
            
"' and url = '" $url "'";
  
mysql_query($update);
  }
else
  {
  
//If not, then add a new one.
  
$insert "insert into " $TableName " (ip, url, time) values ('" $ip "', '" $url "', " $time ")";
  
mysql_query($insert);
  }
  
//Get rid of entries that have expired.
$delete "delete from " $TableName " where time < " . ($time $TimeOut);
mysql_query($delete);
     
mysql_close();

function 
users()
         {
         global 
$Host;
         global 
$User
         global 
$PassWord
         global 
$DataBaseName
         global 
$TableName;
         global 
$TimeOut;

         
mysql_connect($Host$User$PassWord);
         
mysql_select_db($DataBaseName);
         
         
$select "select distinct ip from " $TableName;
         
$users mysql_query($select);
         
$number_of_users mysql_num_rows($users);
                      
         
mysql_close();
         
         return(
$number_of_users);
         }
         
function 
users_on_this_page()
         {
         global 
$Host;
         global 
$User
         global 
$PassWord
         global 
$DataBaseName
         global 
$TableName;
         global 
$TimeOut;
         global 
$url;

         
mysql_connect($Host$User$PassWord);
         
mysql_select_db($DataBaseName);
         
         
$select "select distinct ip from " $TableName " where url = '" $url "'";
         
$users mysql_query($select);
         
$number_of_users mysql_num_rows($users);
                      
         
mysql_close();
         
         return(
$number_of_users);
         }
?>

Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.