problem z licznikiem :(
shingo - 09-04-2006 09:34
problem z licznikiem :(
sciagnalem licznik jednak nie wiem dlaczego cos nie dziala. ponizej zamieszczam jego kod: <?
if($czas == "") { $czas = 600; }
if($tryb == "") { $tryb = tekstowy; }
if($id == "") { print(" Nie podano identyfikatora licznika "); exit; }
if(!file_exists($katalog)) { mkdir($katalog,0777); }
chdir($katalog);
$rights = 0666; $lastippath = $id . '_last_ip'; $lasttimepath = $id . '_last_time'; $cntpath = $id . '_licznik_cnt'; $dontcount = 0;
if(!file_exists($lastippath)) { touch($lastippath); chmod($lastippath,$rights); }
if(!file_exists($lasttimepath)) { touch($lasttimepath); chmod($lasttimepath,$rights); }
if(!file_exists($cntpath)) { $plik = fopen($cntpath,"w"); fputs($plik,0); fclose($plik); chmod($cntpath,$rights); }
$lastip = file($lastippath); $lasttime = file($lasttimepath);
$noi = count($ip); $i = 0; while($i != $noi) { if($REMOTE_ADDR == $ip[$i]) { $dontcount = 1; } $i++; }
if((filesize($lasttimepath) != 0) and ($dontcount == 0)) { $j = count($lasttime); while(($doncount == 0) and ($j != 0)) { $timel = strlen($lasttime[$j - 1]); $tff = substr($lasttime[$j - 1],0,$timel - 1); $time2 = time(); $diff = $time2 - $tff; if($diff < $czas) { $iplenght = strlen($lastip[$j - 1]); $ipff = substr($lastip[$j - 1],0,$iplenght - 1); if($REMOTE_ADDR == $ipff) { $dontcount = 1; } } else { break; } $j--; } }
if($dontcount == 0) { $plik = fopen($lastippath,"a"); fputs($plik,$REMOTE_ADDR); fclose($plik); $plik = fopen($lastippath,"a"); fputs($plik,"\n"); fclose($plik);
$plik = fopen($lasttimepath,"a"); fputs($plik,time()); fclose($plik); $plik = fopen($lasttimepath,"a"); fputs ($plik,"\n"); fclose($plik);
$plik = fopen($cntpath,"r"); $liczba = fgets($plik,30); $liczba = 1 + $liczba; fclose($plik); $plik = fopen("$cntpath","w"); fputs($plik,$liczba); fclose($plik); }
if($tryb != nie_widoczny) { $plik = fopen($cntpath,"r"); $liczba = fgets($plik,30); fclose($plik); $lenght = strlen($liczba); $i = 0; while($i != $lenght) { $cyfra = $liczba[$i]; if($tryb == graficzny) { switch($cyfra) { case 0; ?> <IMG SRC="<? print($sciezka . '0.gif') ?>" alt="0"> <? break; case 1; ?> <img src="<? print($sciezka . '1.gif') ?>" alt="1"> <? break; case 2; ?> <img src="<? print($sciezka . '2.gif') ?>" alt="2"> <? break; case 3; ?> <img src="<? print($sciezka . '3.gif') ?>" alt="3"> <? break; case 4; ?> <img src="<? print($sciezka . '4.gif') ?>" alt="4"> <? break; case 5; ?> <img src="<? print($sciezka . '5.gif') ?>" alt="5"> <? break; case 6; ?> <img src="<? print($sciezka . '6.gif') ?>" alt="6"> <? break; case 7; ?> <img src="<? print($sciezka . '7.gif') ?>" alt="7"> <? break; case 8; ?> <img src="<? print($sciezka . '8.gif') ?>" alt="8"> <? break; case 9; ?> <img src="<? print($sciezka . '9.gif') ?>" alt="9"> <? break; } } else { switch($cyfra) { case 0; print(0); break; case 1; print(1); break; case 2; print(2); break; case 3; print(3); break; case 4; print(4); break; case 5; print(5); break; case 6; print(6); break; case 7; print(7); break; case 8; print(8); break; case 9; print(9); break; } } $i++; } }
?> jest to zapisane w pliku counter.php3 na stronie gdzie licznik ma byc umieszczny wklejony mam taki kod: <?
// Ścieżka do pliku licznika np. counter.php3
$licznik = "counter.php3";
// Ścieżka do katalogu w którym będą przechowywane dane licznika
$katalog = "counter_files";
// Identyfikator licznika. // Musi zostać podany. Jesli chcesz miec kilka niezaleznych licznikow to idenyfikatory // musza byc rozne.
$id = "licz";
// Czas jaki musi minąć aby można było odświeżyć licznik z tego samego adresu IP (w sekundach). // Jeśli nie zostanie podany wynosi 600 sekund czyli 10 min.
$czas = "";
// Tryb pracy licznika (nie_widoczny/graficzny/tekstowy). // Jeśli nie zostanie podany to licznik pracuje w trybie tekstowym.
$tryb = "";
// Scieżka do plików z cyferkami w trybie graficznym. // Musi być zakończona '/' np. http://www.cyferki.pl/cyferki/ czy licznik/cyferki/ // Pliki muszą mieć postać 0.gif, 1.gif, 2.gif ... 9.gif.
$sciezka = "";
// Zastrzeżone adresy IP z których nie można zwiększać stanu licznika. // Możesz dodać dowolną ilość adresów, dodając kolejne linie.
$ip[] = ""; $ip[] = ""; $ip[] = "";
include("$licznik");
?> licznik sie wyswietla jednak po uplywie 1 sec nic sie nie dzieje nawet moze minac dluzej i tak dalej nic. podczas kombinowania gdzy zmienie jedna wartosc w kodzie counter.php3 mianowicie: $noi = count($ip); $i = 0; while($i != $noi) { if($REMOTE_ADDR == $ip[$i]) { $dontcount = 1; } $i++; na taka wartosc: $noi = count($ip); $i = 0; while($i != $noi) { if($REMOTE_ADDR == $ip[$i]) { $dontcount = 0; } $i++; licznik zaczyna liczyc i reaguje na czas jaki ustalam do odswiezania jednak nie dziala mi blokowanie adresu ip i nie wiem jak to rozwizac czy jest ktos w stanie mi pomoc??? bede bardzo wdzieczny oba pierwsze skrypty ktore wkleilem sa orginalne przerobka jest tylko w tej czesci kilka lini wyzej.
shingo - 09-04-2006 21:02
juz nie aktualne
juz rozwiazlem problem. zatem nieaktualne. pozdrawiam
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.plcoolinarny.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|