Menu

Detail Artikel

Home/ Web Design/Detail Artikel

Membuat Statistik Pengunjung Menggunakan PHP

kali ini saya mau sharing tentang pembuatan statistik pengunjung, yang fungsinya adalah agar yg punya website dan pengunjung website tau berapa banyak yang mengunjungi website yg kita miliki. pada statistik pengunjung ini akan menampilkan informasi berapa banyak pengunjung website pada hari ini, berapa banyak pengunjung website kemain, bulan ini, tahun ini dan total seluruh pengunjung. dan terdapat informasi Hits Count yaitu informasi tentang berapa kali halaman pada website kita di buka oleh pengunjung, atau di refresh oleh pengunjung. dan ada juga informasi siapa saja yang sedang online saat ini.

yang harus di siapkan pertama adalah server website kita, disini saya gunakan Xampp 1.6, silahkan di aktifkan terlebih dahulu web server anda, jika sudah buat database baru dengan cara buka web browser dan ketikkan http://localhost/phpmyadmin , atau temen - temen juga bisa membuatnya dengan menggunakan software seperti Mysql-Front atau SQLYog. dan masih banyak lagi. buatlah database dengan nama misal :artikelhitcounter, jika sudah selanjutnya buat tabel konter, hitscounter, dan useronline. dan field - fieldnya bisa liat

 


##### Script Mysql Di bawah ini ########

CREATE TABLE `hitscounter` (
`hits` varchar(100) collate latin1_general_ci NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

INSERT INTO `hitscounter` VALUES ('0');

CREATE TABLE `konter` (
`ip` varchar(50) collate latin1_general_ci NOT NULL default '',
`tanggal` varchar(20) collate latin1_general_ci NOT NULL default '',
`waktu` varchar(20) collate latin1_general_ci NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

CREATE TABLE `usersonline` (
`timestamp` varchar(100) collate latin1_general_ci NOT NULL default '',
`ip` varchar(100) collate latin1_general_ci NOT NULL default '',
`file` varchar(100) collate latin1_general_ci NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

jika database dan tabel sudah selesai di buat, di bawah ini script PHPnya.

###### koneksi.php ####

<?
$server = "localhost";
$db_user = "root";
$db_pass = "";
$db = "fr_system";
$koneksi=mysql_connect($server,$db_user,$db_pass);
mysql_select_db($db,$koneksi);
?>

##### useronline.php ######

<?
include "koneksi.php";
$to_secs = 120;
$t_stamp = time();
$timeout = $t_stamp - $to_secs;
$REMOTEADDR=$_SERVER['REMOTE_ADDR'];
$PHPSELF=$_SERVER['PHP_SELF'];
mysql_connect($server, $db_user, $db_pass) or die ("Useronline Database CONNECT Error");
mysql_db_query($db, "INSERT INTO usersonline VALUES ('$t_stamp','$REMOTEADDR','$PHPSELF')") or die("Database INSERT Error");
mysql_db_query($db, "DELETE FROM usersonline WHERE timestamp<$timeout") or die("Database DELETE Error");
$result = mysql_db_query($db, "SELECT DISTINCT ip FROM usersonline WHERE file='$PHPSELF'") or die("Database SELECT Error");
$user = mysql_num_rows($result);
mysql_close();

if ($user == 1){
echo "<b>$user</b> User";
}
else{
echo "<b>$user</b> Users";
}
?>

####### counter.php #######

<?
include "koneksi.php";
$countertabel=mysql_query("SELECT * FROM hitscounter");
$totalyangada=mysql_fetch_array($countertabel);
$totalyangada1=$totalyangada[hits]+1;
$updatecounter=mysql_query("UPDATE hitscounter SET hits = '$totalyangada1'");
$tampilkansekarang=mysql_query("SELECT * FROM hitscounter");
$tampilkansekarang1=mysql_fetch_array($tampilkansekarang);
echo "$tampilkansekarang1[hits]";
?>

###### index.php #########

<?
session_start();
$tip=$_SESSION['ip'];
$tjam=$_SESSION['jam'];
$ttgl=$_SESSION['tgl'];
if($tip=='' && $tjam=='' && $ttgl==''){
$ip=$_SERVER['REMOTE_ADDR'];
$jam=date("h:i:s");
$tgl=date("d-m-Y");
$_SESSION ["ip"] = $ip;
$_SESSION ["jam"] = $jam;
$_SESSION ["tgl"] = $tgl;
}
$sip=$_SESSION['ip'];
$sjam=$_SESSION['jam'];
$stgl=$_SESSION['tgl'];
require "koneksi.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="102" colspan="2" align="center" valign="middle" bgcolor="#99CC00">BANNER</td>
</tr>
<tr>
<td width="206" height="88" align="center" valign="top"><?php
$ip=$_SERVER['REMOTE_ADDR'];
$tanggal=date("d-m-Y");
$tgl=date("d");
$bln=date("m");
$thn=date("Y");
$tglk=$tgl-1;
$baca=mysql_query("SELECT * FROM konter WHERE ip='$sip' AND tanggal='$stgl' AND waktu='$sjam'");
$baca1=mysql_num_rows($baca);
if($baca1==0){
$tkonter=mysql_query("INSERT INTO konter VALUES ('$sip','$stgl','$sjam')");
}
$q=mysql_query("SELECT * FROM konter");
$blan=date("m-Y");
$bulan=mysql_query("SELECT * FROM konter WHERE tanggal LIKE '%$blan%'");
$tahunini=mysql_query("SELECT * FROM konter WHERE tanggal LIKE '%$thn%'");
$today=mysql_query("SELECT * FROM konter WHERE tanggal='$tanggal'");
if($tglk=='1' | $tglk=='2' | $tglk=='3' | $tglk=='4' | $tglk=='5' | $tglk=='6' | $tglk=='7' | $tglk=='8' | $tglk=='9'){
$kemarin=mysql_query("SELECT * FROM konter WHERE tanggal='0$tglk-$bln-$thn'");
} else {
$kemarin=mysql_query("SELECT * FROM konter WHERE tanggal='$tglk-$bln-$thn'");
}
$visitor = mysql_num_rows($q);
$bulan1=mysql_num_rows($bulan);
$tahunini1=mysql_num_rows($tahunini);
$kemarin1 = mysql_num_rows($kemarin);
$todays=mysql_num_rows($today);
?>
<table width="189" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="109"> Online </td>
<td width="80">: <? include "useronline.php"; ?> </td>
</tr>
<tr>
<td> Total Hits</td>
<td>:
<? include "counter.php"; ?>
Hits </td>
</tr>
<tr>
<td>Hari Ini </td>
<td>:
<?=$todays;?></td>
</tr>
<tr>
<td>Kemarin</td>
<td>:
<?=$kemarin1;?></td>
</tr>
<tr>
<td>Bulan Ini</td>
<td> :
<?=$bulan1;?></td>
</tr>
<tr>
<td> Tahun Ini </td>
<td>:
<?=$tahunini1;?></td>
</tr>
<tr>
<td> Total</td>
<td>:
<?=$visitor;?></td>
</tr>
</table>&nbsp;</td>
<td width="594">&nbsp;</td>
</tr>
<tr>
<td height="25" colspan="2" align="center" valign="middle" bgcolor="#99CC00">Footer</td>
</tr>
</table>
</body>
</html>

dan setelah di jalankan maka hasilnya seperti gambar di bawah ini :

silahkan di coba, semoga sukses

Artikel Lainnya

Komentar Anda

u2A6y

15 Komentar

Reynaldi

12-05-2015 | 02:20:36 renaldgn@gmail.com
ngacooo, ditunggu kunjungannya www.reynaldi.my.id

joni julian

11-03-2015 | 11:24:51 joni.juli@gmail.com
om ane mau nanya ni klo cra diatas tu kan bikin statistik pengunjung klo bikin daftar pengunjung perpus yang bisa di rekap per hari/ bulan/ tahun caranya kayak yang di atas ngk...? ? hehehe newbi om klo slah maafin y..... ane magang di suruh buat gituan ane kan ngk ngerti"!

suardiman

04-02-2014 | 08:29:04 suardiman90@gmail.com
pak.. kmaren mw komen gk bisa , mdh2an ini bsa nh.hehe

riano

31-01-2014 | 12:25:14 adesta.riano@yahoo.co.id
tidak berhasil sob.. gimana yaaaaa ?

FR-SYSTEM.WEB.ID

28-04-2013 | 04:32:24 contact@fr-system.web.id
xampp versi berapa? kalo misal versi 1.7 coba tambahkan perintah error_reporting(0);

Yasir Diadora

18-04-2013 | 10:14:35 yasirvodka@yahoo.co.id
kalau pakek XAMPP yg terbaru ko; eror ya mohon bantuannya,,,,,???

fika

08-01-2013 | 12:23:28 fika.lesta@gmail.com
kebanyakan variable nyaa om x_x

FR-SYSTEM.WEB.ID

19-12-2012 | 08:20:06 frwebhost@gmail.com
jika pengunjung hari ini ga bertambah, memang hitungannya 1 pengunjung di hitung 1, jika kita close browser dan buka lagi programnya, maka otomatis bertambah menjadi 2

ary

16-12-2012 | 10:35:15 arymantha@yahoo.co.id
Misi kang, saya mau tanya kok nilai angka 1 nya gak mau muncul ya waktu saya coba di browser ? padahal gak ada eror ... mohon bantuannya ... trims

Andri Rakasiwi

08-12-2012 | 08:37:52 andri.oktober@gmail.com
Terimakasih ., Sangat Bermanfaat Buat saya

FR-SYSTEM.WEB.ID

08-09-2012 | 01:39:24 contact@fr-system.web.id
error yg seperti apa? jika Hosting berbayar anda bisa upload file melalui file Manager yg ada di CPanel atau bisa juga menggunakan Program FTP, jika sudah, silahkan anda buat database dan upload seluruh tabel dan data yang ada di sever local(localhost), dan jangan lupa setelah itu atur file koneksi sesuai dengan spesifikasi server hosting yang anda punya

Arief

08-09-2012 | 10:35:03 arief.ganteng0292@yahoo.com
Misi kang, bisa bantu cara upload ke webservernya ga, ini sudah dicoba di upload tapi malah eror, pdahal di localhostnya bisa..

FR-SYSTEM.WEB.ID

07-09-2012 | 12:32:12 contact@fr-system.web.id
ok, tadi sudahdi jawab melalui YM, kesalahan seperti itu umumnya kesalahan penulisan atau ketidak sesuaian nama tabel,field yang ada di database dengan tabel,field yg di tuliskan di script PHP. Terima Kasih sudah Berkunjung di Website FR-SYSTEM

arul

06-09-2012 | 10:24:39 aruldex@yahoo.com
Siang gan, kalo da tulisan: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\tes1\index.php on line 40, itu maksudnya gmn ya? Maklum ane awam nii.. Mhon bantuannya...

wendy

31-08-2012 | 10:18:19 suwendi_wendi44@yahoo.com
ok... mks infonya n hasilnya udh bsa tampil.

Produk Kami

Popular Post

Facebook Page

Statistik Pengunjung

  • Hari ini
    :
    552
  • Kemarin
    :
    1467
  • Bulan ini
    :
    13953
  • Tahun ini
    :
    46160
  • Total
    :
    2260261
  • Hits Count
    :
    3349655
  • Now Online
    :
    1 User