SQL
Code:
CREATE TABLE `useronline` (
`id` INT( 10 ) NOT NULL ,
`ip` VARCHAR( 15 ) NOT NULL ,
`timestamp` VARCHAR( 15 ) NOT NULL
) ENGINE = MYISAM ;
modules/wcddl_online.php
Paste :
Code:
<?php
if(!defined("WCDDL_GUTS"))
exit;
function online(){
$visitors_online = new usersOnline();
if (count($visitors_online->error) == 0) {
echo $visitors_online->count_users() . " Users Online";
}
else {
echo "Users online class errors:
<ul>\r\n";
for ($i = 0; $i < count($visitors_online->error); $i ++ ) {
echo "[*]" . $visitors_online->error[$i] . "\r\n";
}
echo "[/list]\r\n";
}
}
?>
func.php
Paste : / before <? /
Code:
class usersOnline {
var $timeout = 120;
var $count = 1;
var $error;
var $i = 0;
function usersOnline () {
$this->timestamp = time();
$this->ip = $this->ipCheck();
$this->new_user();
$this->delete_user();
$this->count_users();
}
function ipCheck() {
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
}
elseif (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
}
elseif (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
function new_user() {
$insert = mysql_query ("INSERT INTO useronline(timestamp, ip) VALUES ('$this->timestamp', '$this->ip')");
if (!$insert) {
$this->error[$this->i] = "Unable to record new visitor\r\n";
$this->i ++;
}
}
function delete_user() {
$delete = mysql_query ("DELETE FROM useronline WHERE timestamp < ($this->timestamp - $this->timeout)");
if (!$delete) {
$this->error[$this->i] = "Unable to delete visitors";
$this->i ++;
}
}
function count_users() {
if (count($this->error) == 0) {
$count = mysql_num_rows ( mysql_query("SELECT DISTINCT ip FROM useronline"));
return $count;
}
}
}