Rabu, 07 Januari 2009

Membuat Counter Image Dengan PHP

Membuat counter image
Oleh : Henry SP

Counter ini terdiri dari 3 file utama, file pertama bernama acounter.php3 yang merupakan halaman web yag digunakan untuk menampilkan counter. Jumlah pengunjung disimpan pada file kedua yang bernama acount.txt. File terakhir adalah file ip.txt yang digunakan untuk menyimpan ip address pengunjung web.





Contoh Counter dengan image www.klik-kanan.com


www.klik-kanan.com



- Anda pengunjung ke -





// letak image yang digunakan sebagai counter
$img = "http://localhost/php/counter/";

// letak image animasi
$animated_img = "http://localhost/php/counter/ani/";

// Berapa digit yang ditampilkan
$padding = 6;

// ukuran lebar dan tinggi file image
$width = 16;
$height = 22;

// letak file log
$fpt = "acount.txt"; //

$lock_ip =0; // IP locking, 1=ya 0=tidak
$ip_lock_timeout =30; // dalam menit
$fpt_ip = "ip.txt"; // file IP log

function checkIP($rem_addr) {
global $fpt_ip,$ip_lock_timeout;
$ip_array = file($fpt_ip);
$reload_dat = fopen($fpt_ip,"w");
$this_time = time();
for ($i=0; $ilist($ip_addr,$time_stamp) = split("\|",$ip_array[$i]);
if ($this_time < ($time_stamp+60*$ip_lock_timeout)) {
if ($ip_addr == $rem_addr) {
$found=1;
}
else {
fwrite($reload_dat,"$ip_addr|$time_stamp");
}
}
}
fwrite($reload_dat,"$rem_addr|$this_time\n");
fclose($reload_dat);
return ($found==1) ? 1 : 0;
}

if (!file_exists($fpt)) {
$count_dat = fopen($fpt,"w+");
$digits = 0;
fwrite($count_dat,$digits);
fclose($count_dat);
}
else {
$line = file($fpt);
$digits = $line[0];
if ($lock_ip==0 || ($lock_ip==1 && checkIP($REMOTE_ADDR)==0)) {
$count_dat = fopen($fpt,"r+");
$digits++;
fwrite($count_dat,$digits);
fclose($count_dat);
}
}
$digits = sprintf ("%0".$padding."d",$digits);
$ani_digits = sprintf ("%0".$padding."d",$digits+1);
echo "\n";
$length_digits = strlen($digits);
for ($i=0; $i < $length_digits; $i++) {
if (substr("$digits",$i,1) == substr("$ani_digits",$i,1)) {
$digit_pos = substr("$digits",$i,1);
echo ("\n");
}
else {
$digit_pos = substr("$ani_digits",$i,1);
echo ("\n");
}
}
echo "
\n";
?>



Tidak ada komentar:

Poskan Komentar