Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Licznik (Zmiana w blokacie z IP na HOST)
Forum PHP.pl > Forum > Gotowe rozwiązania
Soku
Chodzi mi o to aby ten licznik blokowal HOSTY a nie adresy IP zeby ludzi z pod maski (sieci wewnetrznych) tez zliczalo..
Albo poprostu cos co by zliczalo wszystkich raz na rok 720 min biggrin.gif

[php:1:a00687e474]
<?
//KONFIGURACJA

//nazwa pliku gdzie będ&plusmn; spisywane nr ip.
$plik_ip = "ip.dat"; //chmod 666

//nazwa pliku gdzie będzie przechowywana ilo&para;ć odwiedzin.
$plik_count = "count.dat"; //chmod 666

//czas po jakim będzie można zliczyc wejscie z tego samego nr ip podawany w MINUTACH.
$ilosc_min = "720";

//KONIEC KONFIGURACJI


$ip = getenv ("REMOTE_ADDR");
$czas = time();
$datag = "$ip|$czas|n";

$file = fopen($plik_count, "r");

flock($file, 1);
$ile = fgets($file, 4096);
flock($file, 3);
fclose($file);
$ile = str_replace("", "0", $ile);


$plik = file($plik_ip);

$i = 0;
while($i < count($plik)){
$nr = explode("|", $plik[$i]);

$plik[$i] = "";

if ($czas >= ($nr[1]+60*$ilosc_min))
{
$file = fopen($plik_ip, "w");
flock($file, 2);
fwrite($file, join("", $plik));
flock($file, 3);
fclose($file);

$file=fopen($plik_ip, "a");
flock($file, 2);
fwrite($file, $datag);
flock($file, 3);
fclose($file);

$ile++;
}

if ($nr[0]==$ip)
{$jest++;}

$i++;
}

if ($jest==0)
{
$file=fopen($plik_ip, "a");
flock($file, 2);
fwrite($file, $datag);
flock($file, 3);
fclose($file);

$ile++;
}

$file=fopen($plik_count, "w");
flock($file, 2);
fwrite($file, $ile);
flock($file, 3);
fclose($file);

echo $ile;
?>

[/php:1:a00687e474]
cichy
zrób coś takiego w linii 16:
[php:1:71355392fa]<?php
$ip = gethostbyaddr($_SERVER['REMOTE_ADDR']);
?>[/php:1:71355392fa]
Powinno zadziałać.
Pozdro
Soku
Wszuystko dziala beez problemow, thx pozdro ;-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.