Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] licznik
JarCzeS
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
JarCzeS
post
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


a jezeli przerobil bym licznik tak zeby do bazy zapisywal liczbe odwiedzin? przy kazdym wejsciu i braku cookie robilby update danego rekordu
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


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).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:39