Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 26.02.2004 Ostrzeżenie: (0%)
|
Witam,
Jestem w zasadzie "nowy w php". Stworzyłem skrypt w php - licznik odwiedzin - niestety nie działa prawidłowo. Ma być odporny na odświeżanie (zapis czasu na IP odwiedzającego). [php:1:e01299dbba]<?php $nabij = FALSE; $ip=$_SERVER['REMOTE_ADDR']; $czas_teraz=date('U'); $plik_l="licznik_gl.in"; $plik_g="licznik.in"; $plik_l_tab=file($plik_l); for ($i=0; $i< count($plik_l_tab); $i++) { $linia=explode("|&&|", $plik_l_tab[$i]); if ($linia[0]==$ip) $czas_roznica= ($czas_teraz)-($linia[1]); $czas_nabijaj= "3600"; if ($czas_roznica <= $czas_nabijaj) { $wpis_po="$ip.'|&&|'.$czas_teraz.'|&&|'n"; $plik=file_get_contents($plik_l); $plik=str_replace($plik[$i],$wpis_po,$plik); $odczyt=fopen($plik_l,"w"); flock($odczyt,LOCK_EX); fputs($odczyt,$plik); flock($odczyt,LOCK_UN); fclose($odczyt); $plik=fopen($plik_g,"r"); $ile=fgets($plik,80); $ile++; fclose($plik); $plik=fopen($plik_g,"w"); flock($plik,LOCK_EX); fputs($plik,$ile); flock($plik,LOCK_UN); fclose($plik); $nabij=TRUE; } } if (!$nabij) { $odczyt=fopen($plik_l,"a"); flock($odczyt,LOCK_EX); fputs($odczyt,"$ip|&&|$czas_teraz|&&|n"); flock($odczyt,LOCK_UN); fclose($odczyt); $plik=fopen($plik_g,"r"); $ile=fgets($plik,80); $ile++; fclose($plik); $plik=fopen($plik_g,"w"); flock($plik,LOCK_EX); fputs($plik,$ile); flock($plik,LOCK_UN); fclose($plik); } ?>[/php:1:e01299dbba] Założenia: Jeden plik służy do zapis numeru IP i czasu $plik_l="licznik_gl.in" a drugi do ilości odwiedzin. $plik_g="licznik.in"; jeżeli nie ma zapisu numeru IP dopisuje do pliku numer IP i czas jeżeli czas IP jest równy lub większy od czasu zadeklarowanego "3600" to ma zostac zmieniony czas dla konkretnego IP na czas bieżący i zwiększony licznik o 1. Jezeli czas jest mniejszy to ma zostać zminiony tylko czas na czas bieżący Problem Niestety nie mam pojęcia gdzie robie błąd w skrypcie. Może ktoś mi pomoże go rozwiązać. |
|
|
|
xmarko Licznik - cos nie tak w skrypcie (oparty na plikach) 4.03.2004, 13:52:00
iggi mysle, ze skrypt na licznik z blokada bedzie duzo ... 5.03.2004, 17:39:09
xmarko ja jednak nie chce licznika opartego na ciasteczka... 5.03.2004, 20:33:26
iggi nie wiem co moze byc zle ale zaraz sprawdze i ci o... 5.03.2004, 21:20:13
iggi oto w nowej odpowiedzi umieszczam kod dwóch plików... 5.03.2004, 23:49:11
xmarko Trochę powalczyłemze skryptem i oto wynik. Może kt... 8.03.2004, 13:29:27 ![]() ![]() |
|
Aktualny czas: 23.12.2025 - 08:42 |