Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] licznik
Forum PHP.pl > Forum > Przedszkole
JarCzeS
witam, mam problem z licznikiem, otoz od czasu do czasu obcina mi pierwsze 2 cyfry z licznika. (15466 zamienia na 466)
Na strone jest dosc duzo wejsc, wiec moze problem tkwi ze 2 osoby jednoczesnie otwieraja ten sam plik?

Kod licznika:
  1. $sFile = 'counter.txt';
  2. $aFile = file( $sFile );
  3. $sData = $aFile[0];
  4. if( !isset( $_COOKIE[date( 'Ymd' )] ) ){
  5. $sData++;
  6. $rFile = fopen( $sFile , 'w' );
  7. fwrite( $rFile, $sData );
  8. fclose( $rFile );
  9. setCookie( date( 'Ymd' ), true, time( ) +3600 );
  10. }


ktos moze wie dlaczego tak sie dzieje?
Pilsener
Liczniki oparte o cookie są niewiarygodne, poza tym nie blokujesz pliku na czas jego zapisu (polecam funkcję flock), co może rodzić dość poważne konsekwencje. W dodatku nastaw się na to, że co jakiś czas plik się wyzeruje w wyniki zerwania połączenia podczas jego zapisywania - im większy ruch na stronie tym większe prawdopodobieństwo takiego zdarzenia.
JarCzeS
a jezeli przerobil bym licznik tak zeby do bazy zapisywal liczbe odwiedzin? przy kazdym wejsciu i braku cookie robilby update danego rekordu
Pilsener
Baza będzie ok, bo raz dodany rekord na pewno nie zniknie, wystarczy dodawać IP + czas i na tej podstawie co jakiś czas generować statystyki (by nie dusić bazy).
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.