query($query); if(!$result) { // Create table if it doesnt exist yet.. $query = " CREATE TABLE `naatan_useronline` ( `ac_id` smallint(6) NOT NULL auto_increment, `ac_ip` varchar(25) NOT NULL default '', `ac_name` varchar(100) NOT NULL default '', `ac_contact` varchar(255) NOT NULL default '', `ac_time` varchar(20) NOT NULL default '', PRIMARY KEY (`ac_id`) ); "; $wpdb->query($query); } } // ## Get visitor IP ## function naatan_get_IP() { if (empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { $ip_address = $_SERVER["REMOTE_ADDR"]; } else { $ip_address = $_SERVER["HTTP_X_FORWARDED_FOR"]; } if(strpos($ip_address, ',') !== false) { $ip_address = explode(',', $ip_address); $ip_address = $ip_address[0]; } return $ip_address; } // ## Get named bits, this returns a list of the named users ## function naatan_namedbits() { global $wpdb,$naatan_linknames; if ($acq = $wpdb->get_results("SELECT * FROM naatan_useronline WHERE ac_name!='Guest'")) { foreach ($acq as $ac) { // Make name linkable if contact details are filled if (($naatan_linknames=='true') AND (strrpos($ac->ac_contact, 'http')!==false)) { $ac->ac_name = ''.$ac->ac_name.''; } if ($ac->ac_name) $namedbits .= "$ac->ac_name, "; } } echo $namedbits; } // ## Get number of users online ## function naatan_useronlinecount() { global $wpdb; $acq = $wpdb->get_col("SELECT COUNT(*) FROM naatan_useronline"); echo $acq[0]; } // ## Get number of named users online ## function naatan_namedonlinecount() { global $wpdb; $acq = $wpdb->get_results("SELECT * FROM naatan_useronline WHERE ac_name!='Guest'", ARRAY_N); echo count($acq); } // ## Get number of unnamed users online ## function naatan_guestonlinecount() { global $wpdb; $acq = $wpdb->get_results("SELECT * FROM naatan_useronline WHERE ac_name='Guest'", ARRAY_N); echo count($acq); } // ## INITIATE BASE SCRIPT ## naatan_check_table(); $ac_userip = naatan_get_IP(); // Remove timed out visitors $isunder = time() - $naatan_timeout; $wpdb->query("DELETE FROM naatan_useronline WHERE ac_time<'$isunder'"); unset($isunder); // Check if visitor has cookies set, if not user is unnamed (cookies are set when visitor comments on your site) if ($_COOKIE['comment_author_'.COOKIEHASH]) { $ac_name = $_COOKIE['comment_author_'.COOKIEHASH]; $ac_contact = $_COOKIE['comment_author_url_'.COOKIEHASH]; } elseif ($_COOKIE['comment_author']) { $ac_name = $_COOKIE['comment_author']; $ac_contact = $_COOKIE['comment_author_url']; } elseif ($cmnt = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_author_IP='$ac_userip' ORDER BY comment_ID DESC LIMIT 1")) { $ac_name = $cmnt->comment_author; $ac_contact = $cmt->comment_author_url; } else { $ac_name = 'Guest'; } // Check for session $ac = $wpdb->get_row("SELECT * FROM naatan_useronline WHERE ac_ip='$ac_userip' LIMIT 1"); if (!$ac->ac_ip) { $wpdb->query("INSERT INTO naatan_useronline (ac_id,ac_ip,ac_name,ac_contact,ac_time) VALUES (NULL,'$ac_userip','$ac_name','$ac_contact','".time()."')"); } else { $wpdb->query("UPDATE naatan_useronline SET ac_name='$ac_name',ac_contact='$ac_contact',ac_time='".time()."' WHERE ac_ip='$ac_userip'"); } ?>