Adi Sumaryadi - Bicara IT dan Internet

Membuat Counter Web dengan Images

pada Minggu, 08 April 2007 22:38 WIB

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.

Untuk listing Programnya adalah sebagai berikut:

<html>
<head>
<title>Contoh Counter dengan image</title>
</head>
<body bgcolor="#FFFFFF">
<center>
<br>
<font size="2" face="Arial, Helvetica, sans-serif">- Anda pengunjung ke - <br>
<br>
</font>

<?php
// 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; $i<sizeof($ip_array); $i++) {
list($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 ");
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 "<table cellpadding=0 cellspacing=0 border=0><tr align=center> ";
$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 ("<td><img src=$img$digit_pos.gif width=$width height=$height></td> ");
}
else {
$digit_pos = substr("$ani_digits",$i,1);
echo ("<td><img src=$animated_img$digit_pos.gif width=$width height=$height></td> ");
}
}
echo "</tr></table> ";
?>