(#1)
c0rrupt Offline
Administrator
 
Posts: 192
Join Date: Mar 2010
Location: Canada
Users online - 04-16-2010, 05:19 PM

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;
              }
           }
        }


Before doing any edits to your DDL Site always make a BACKUP first.

Bookmarks

Tags
online, users

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




Powered by vBulletin


Content Relevant URLs by vBSEO