Ip kontrol eden sayaç.....



<?

##################################

# Ayarlar 

##################################

$fark=3; // 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="adres.inc"; //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),date(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";

}

####################################################################################

?>