Membuat Hit Counter Pengunjung yang sedang Online
Sudah hampir tiga minggu saya tidak mengupdate-update blog ini karna sibuk mengurus komputer yang terserang virus, trojan dan backdoor, karna sekarang saya ada kesempatan maka saya sempatkan untuk sekedar berbagi, mengupdate, dan menulis artikel lagi di blog ini, pada kesempatan yang sangat sempit ini saya ingin membahas cara membuat hit counter pengunjung yang sedang online di web/blog kita sehingga kita bisa mengetahui berapa orang yang sedang membaca/mengunjungi blog/web kita.
Pada artikel sebelumnya saya sudah membahas tentang membuat hit counter namun hit counter tersebut hanya dapat menghitung jumlah pengunjung dari pertama kali counter tersebut di pasang sampai counter tersebut di hapus/buang dengan kata lain tidak dapat mereset dirinya sendiri. Hit counter yang akan kita buat ini akan menghitung jumlah pengunjung web/blog kita yang sedang mengunjungi (kalau bahasa kerennya : mengakses) dalam waktu beberapa menit yang lalu. Ok saya yakin anda sudah mengerti maksud dan tujuan saya menulis artikel ini jadi kenapa kita tidak langsung membuatnya saja..???. Ok, pertama kita buat tabel dalam database kita berikut adalah struktur tabelnya.
CREATE TABLE `online` (
`ip` VARCHAR(15),
`browser` VARCHAR(200),
`time` VARCHAR(50),
PRIMARY KEY (`ip`)
);
Setelah membuat tabel selanjutnya seperti biasa kita membuat scriptnya yaitu menggunakan PHP (Hypertext PreProccessor), oya perlu di perhatikan dalam membuat counter ini tidak sama dengan membuat hit counter lainnyakarna pada counter ini kita harus memperhatikan dan mencatat ip, browser dan waktu pengunjung tersebut datang ke blog/web kita dan kita juga harus menyisipkan script pengecekan, penghapusan, serta script penyisipan di dalam satu script yang nantinya akan si eksekusi ketika pengunjung sedang me-load blog/web kita, Berikut adalah scriptnya.
online.php
<?php// Meminta ip dari server$ip = $_SERVER['REMOTE_ADDR'];
// Meminta User agent dari server$user = $_SERVER['USER_AGENT'];
// Mencatat waktu pengunjungan$time = time();
// Tentukan waktu kadaluarsa atau timeout dalam detik contoh 60, 120$timeout = 60;
// Koneksi ke MySQLmysql_connect("dbhost","dbuser","dbpass");
mysql_select_db("dbname");
// Mengapus data user 60 detik yang laluDELETE FROM `online` WHERE `time` <= $time;
// Melakukan pengecekan terhadap ip, browser, dan waktu browser$sql = mysql_fetch_array(mysql_query('SELECT * FROM `online` WHERE `ip` = '.$ip.' AND `browser` = '.$browser));
// Jika sudah ada maka dilakukanlah upadte pada databaseif ($sql)
{UPDATE `online` SET `time` = $timeout WHERE `ip` = $ip AND `browser` = $browser LIMIT 1;
}else{// Jika tidak ada maka data baru akan di sisipkan ke dalam databaseINSERT INTO `online` VALUES ('.$ip.','.$browser.','.$timeout.');
}// Menampilkan output akhir$sql = mysql_fetch_array(mysql_query('SELECT COUNT(*) AS `total` FROM `online`'));
echo 'Terdapat '.$sql['total'].' pengunjung yang sedang online';
?>
Proses dan cara bekerjanya sudah saya jelaskan di atas jadi setiap ada pengunjung yang datang script ini akan bekerja secara otomatis tanpa perlu pengecekan dalam jangka waktu tertentu script ini juga tidak akan meninggalkan spam pada database anda karna telah di jelaskan di atas tadi script ini akan menghapus secara otomatis data yang sudah lama dan mengganti dengan data yang baru setiap satu menit (tergantung $timeout anda) jika anda menulis $timeout = 60 maka setiap 60 detik database anda akan di gantikan dengan data baru setiap menitnya.
Oya ada satu hal yang terlupakan oleh saya untuk menggunakan script ini anda hanya tinggal menyisipkan script pada script yang akan di hitung jumlah pengunjungnya (contoh: index.php). Ok, Terima kasih atas waktunya dan sudah mau membaca artikel ini jika ada kesalahan silahkan di koreksi atau hubungi saya melalui form komentar di bawah ini karna script ini belum saya coba sebelumnya karna sibuk.
Terima Kasih…..