Giriş

Tam Sürümü Görüntüle : [PHP]IP Kontrollu sayaç


jockeя
07-11-2007, 11:48 PM
<?
##################################
# Ayarlar
##################################
$fark=0; // Kaç saatte bir aynı ip girişinde sayaç arttırılmasına izin verilecek!###
$kac=3; //Minimum görüntülenecek hane sayısı... ###
$uz=".gif"; //Sayacımızın resim uzantisi... ###
$tip=1; //değer 0 ise grafik, farklı ise text sayaç olacaktır... ###
$isim="giris.txt"; //Sayac dosyasının adı... ###
################################################## ##################################

### Ip Adresini Bulma ###
if (getenv(HTTP_X_FORWARDED_FOR))
{
$ip=getenv(HTTP_X_FORWARDED_FOR);
}
else
{
$ip=getenv(REMOTE_ADDR);
}
################################################## ##################################

### Saat işlemleri ################################################## ###############
$saat=(int) mktime(date(H),date(i),date(s),date(n),date(z),dat e(y));
$saat1=(int) mktime(date(H)-$fark,date(i),date(s),date(n),date(z),date(y));
################################################## ##################################

## Ana Blok ################################################## ######################
if(!file_exists($isim)) // Counter ilk kez kullanılıyor ise bu bölüm kullanılır.
{
$dosya=fopen($isim,"w");
$deger=1;
$strdeger=(string) $deger;
goster($strdeger,$uz,$kac,$tip);
$bilgi="$deger;$ip;$saat;\n";
fwrite($dosya,$bilgi);
fclose($dosya);
}
else // Eğer counter ilk kez kullanılmıyorsa bu bölüm işletilir.
{
$i=0;
$dosya=fopen($isim,"r");
$satir=fgetcsv($dosya , 2048 , ";");
$onceki=(int) $satir[2];

if (!$deger) $deger=(int) $satir[0];
if(($ip!=$satir[1]) || ($onceki<$saat1))
/* Eğer ip farklı veya gerekli saat dolmuş ise bu bölüm işletilir*/
{
$deger++;
$i=1;
}
$strdeger=(string) $deger;
goster($strdeger,$uz,$kac,$tip);
fclose($dosya);

if ($i==1) //Eğer counter arttırılmış ise bu bölüm işletilir.
{
unlink($isim);
$dosya=fopen($isim,"w");
$bilgi="$deger;$ip;$saat;\n";
fwrite($dosya,$bilgi);
fclose($dosya);
}
}
################################################## ##################################

### Resim Veya Text Olarak Görüntüleme #############################################
function goster($strdeger,$uz,$kac,$tip)
{
$bu=strlen($strdeger);
$sifir=$kac-$bu;

for($j=0;$j<$sifir;$j++)
if ($tip==0) //Eğer grafik ise bu bölüm değil ise else işletilir.
echo"<img src='resim/0.gif'>";
else echo"0";

for($j=0;$j<$bu;$j++)
$hane[$j]=substr($strdeger,$j,1);

foreach($hane as $resim)
if ($tip==0) //Eğer grafik ise bu bölüm değil ise else işletilir.
echo"<img src='resim/".$resim.$uz."'>";
else echo"$resim";
}
################################################## ##################################
?>