10 August 2015

Trik-Bloging : Membuat tracking online user sendiri dengan PHP dan Sql

Memantau pengunjung sebuah blog terutama blog milik kita sendiri adalah hal yang sangat menyenangkan, kenapa tidak? kita bisa menikmati hasil jerih payah kita saat update blog yaitu dengan cara memantau apakah ada kehidupan di depan halaman blog kita (pengunjung). Itu yang sering aku lakukan jika aku pertama kali online. Iya aku suka memantau pengunjung blog punyaku sendiri seberapa banyakkah pengunjung blog-ku saat ini.
Dulu-nya aku sering memakai pihak ke-3 untuk bisa men-tracking user online dan kali ini saya akan me-review tutorial cara membuat script untuk memantau jumlah pengunjung sedang online di web atau blog kita, pastinya dengan menggunakan bahasa pemrogaman PHP.
Berikut scriptnya:

Sebelumnya mohon anda buat sebuah file php di text editor anda lalu simpan dan beri nama usersOnline.class.php (persis)

<?php

class usersOnline {

var $timeout = 600;
var $count = 0;
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;
}
}

}

?>

Jika sudah, letakkan file tersebut ke direktori mana saja yang anda suka.
Langkah selanjutnya adalah membuat tabel database dan eksekusi perintah dibawah ini di media management database anda (contoh: phpmyadmin, dll):
CREATE TABLE `useronline` (
  `id` int(10) NOT NULL auto_increment,
  `ip` varchar(15) NOT NULL default '',
  `timestamp` varchar(15) NOT NULL default '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `id`(`id`)
) TYPE=MyISAM COMMENT='' AUTO_INCREMENT=1 ;

Langkah selanjutnya adalah menempatkan script dibawah ini kedalam halaman web/blog anda yang mana akan meng-eksekusinya dan tampil:

<?php
include_once ("usersOnline.class.php");
$visitors_online = new usersOnline();

if (count($visitors_online->error) == 0) {

if ($visitors_online->count_users() == 1) {
echo "There is " . $visitors_online->count_users() . " visitor online";
}
else {
echo "There are " . $visitors_online->count_users() . " visitors online";
}
}
else {
echo "<b>Users online class errors:</b><br /><ul>\r\n";
for ($i = 0; $i < count($visitors_online->error); $i ++ ) {
echo "<li>" . $visitors_online->error[$i] . "</li>\r\n";
}
echo "</ul>\r\n";

}
?>

Semoga bermanfaat ya,..
Oiya script tersebut adalah hasil pembuatan Om Ilir Fekaj dan disini saya hanya me-review saja kok.
Jika masih bingung bisa menanyakan dengan cara meninggalkan komentar dibawah ini,, selamat menikmati..

Kategori yang lain :

1 comment:

  1. belom ngerti bang kurang jelas bagi pemula seperti sya

    ReplyDelete

 
template minima edited by : ekhan