1. Mencatat ip dan browsernya.
2. Menggunakan cookie.
3. Menggunakan SESSION.
Namun pada trik kali ini kita pake yang ketiga saja yaitu menggunakan SESSION sekalian mendalami pemakaian SESSION.
SESSION adalah sebuah sarana yang disediakan PHP untuk passing variabel antar script dalam jangkawaktu tertentu. Pada defaultnya SESSION hanya akan berlaku selama browser tidak ditutup (close) dan dalam jangka waktu tertentu (menit).
Nah berikut ini contoh penggunaan SESSION dalam beberapa hari meskipun browser ditutup tetap valid, selama SESSION ID yang tersimpan di cookie browser tidak terhapus.
1. Kita setting dulu waktu expired SESSION ID pada cookie yaitu dengan menggunakan
void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]] )
contohnya:
$waktu=60*60*24;
session_set_cookie_params($waktu);
nah contoh diatas akan mengatur SESSION ID di cookie akan expired setelah 24jam atau 1hari. Namun perlu diingat pada defaultnya cache session akan tersimpan di folder temporary webserver dan kadang2 webserver tersebut akan menghapus temporary dalam jangka waktu tertentu. Nah jika cache session kita terhapus maka session kita jadi expired.
2. Untuk menghindari penghapusan temporary session kita oleh robot webserver maka kita definisikan sendiri folder tempat menyimpan session yaitu dengan menggunakan
string session_save_path ([ string $path ] )
contohnya:session_save_path('./tempo');
3. Kemudian baru kita mulai session kita dengan menggunakan
session_start();
Nah contoh diatas, step 1 - 3 adalah cara membuat session yang akan expired setelah 24 jam. 24jam disini adalah sejak session tersebut dibuat bukan sejak last access loh ya. Berikutnya kita akan masuk pada proses pembuatan counter menggunakan sistem saklar on/off dengan logika sebagai berikut.
1. buat session.
2. periksa apakah saklar on/off
3. jika saklar off maka hitung dan catet ke data.
scriptnya akan seperti ini:
$waktu=60*60*24;
session_set_cookie_params($waktu);
session_save_path('./tempo');
session_start();
if($_SESSION['saklar']!='on'){
$_SESSION['saklar']='on';
//baca file data counter
$con=@fopen('data-counter.txt','r');
$counter=@fread($con,filesize('data-counter.txt'));
@fclose($con);
$counter++;
//catat kembali ke file data
$con=fopen('data-counter.txt','w');
fwrite($con,$counter);
fclose($con);
}
echo "visitor hari ini: ".$counter;
Nah contoh diatas hanya akan menambah hitungan counter jika $_SESSION['saklar'] tidak samadengan 'on' dan hanya visitor baru yang memenuhi sarat tersebut, sedangkan visitor yg sudah pernah berkunjung tidak akan terhitung karena $_SESSION['saklar'] telah berisi 'on'
Nah karena ini counter visitor harian maka jangan lupa untuk menghapus atau mereset data counter setiap harinya bisa dengan menggunakan fasilitas cron-job untuk menjadwalkan reset counter ini. dan juga buat script untuk me-reset counter yaitu sebagai berikut:
//menghapus cache session
$cache=scandir('./tempo');
$c=0;
while($c<count($cache)){
unlink('./tempo/'.$cache[$c]);
$c++;
}
//menghapus data counter
unlink('data-counter.txt');
dah selesai.
kalo ada yg salah silahkan berikan masukan saran dan kritiknya :)

25 komentar:
Wew, extreme banget ya script nya,,
nice posting Om !
wah ada dolanan webservernya jg -mantaf- .. lg gencar Ngarit PHP akang ..he..he.. ini namanya blog pttjp, blog pahlawan tanpa tanda jasa PHP.. pokoke terus
semangaat .. :D
xixixixi Tia senyum2 liat komen kakak Alkatro... kok bisa yah :P
semangat terus kak Ram.. jangan pantang menyetah yah *hiihih maap kalo nga nyambung* Tia lagi error nih kak :((
Kang Ramuni , blog ny aum numb3r apa hehe http://ardiyoto.co.cc
wow, ngeri scriptnya mantab2, nice info sob ;)
mantafff ... keep posting, meningkatkan SDM indonesia hehehehhehe.
bisa jadi mata-mata donk..hehehe
saya coba mas ya, thanx atas share ilmunya nich
@rumah blogger ini cuma script statistik biasa, untuk mengetahui seberapa banyak visitor kita tiap harinya :)
wah baru tahu php ni, nambah ilmu nambah rejeki..
pokonya semangat terus, dan sukses selalu
mas, kalo penghitungnya ga dihapus gimana mas? jadi selamanya gitu, g harian.thx
kalo buat selamanya ya gak usah pake script penghapusnya
Twuh script na bs lnsung d pake ato mesti d edit y mas
Twuh script na bs lnsung d pake ato mesti d edit y mas
bisa langsung dipake :)
Parse error: syntax error, unexpected $end in /bla bla
malah keluar gto mas
pada line berapa bro?
mungkin pada baris ini lupa gak ada tanda petiknya
echo "visitor hari ini: ".$counter;
$waktu=60*60*24; session_set_cookie_params($waktu); session_save_path('./tempo'); session_start(); if($_SESSION['saklar']!='on'){ $_SESSION['saklar']='on'; //baca file data counter $con=@fopen('counter.txt','r'); $counter=@fread($con,filesize('counter.txt')); @fclose($con); $counter++; //catat kembali ke file data $con=fopen('counter.txt','w'); fwrite($con,$counter); fclose($con); } echo "pengunjung:" $counter;
//menghapus cache session $cache=scandir('./tempo'); $c=0; while($c<count($cache)){ unlink('./tempo/'.$cache[$c]); $c++; } //menghapus data counter unlink('counter.txt');
Aku bkin dalam 1 file mas, (eror d line 6 mas, line terakhr kaya na mas)
Ne url na http://dmscyberz.host56.com/count
- ganti barisnya sesuaikan dengan yang saya tulis bro.
- terus script buat menghapus jangan dijadikan satu file dengan script counter.
- pada syntak ini kurang titik
echo "pengunjung:" $counter;
harusnya
echo "pengunjung: ".$counter;
udah dibuat sama ama yg mas buat, tp yg counter visitorx (utk m'hapus cache, trus ane bikin di index.php, trus gw coba buka d browser, gk tampil angkax gan, yg tampil "visitor hari ini : " udah itu aj, dmana salahx gan?
udah dibuat sama ama yg mas buat, tp yg counter visitorx saja (utk m'hapus cache gk ane bikin), trus ane bikin di index.php, trus gw coba buka d browser, gk tampil angkax gan, yg tampil "visitor hari ini : " udah itu aj, dmana salahx gan?
ada file ini gak?
data-counter.txt
klo belum ada silahkan dibuat dan di chmod 666
bro numpang mampi siang2..mau follow..follow balik ya bro..
www.asixpoel.blogspot.com
Nice info...bermanfaat...thx.
Poskan Komentar