Statystyki odporne na odświeżanie

Rozmowy z innymi użytkownikami forum na różne tematy, niekoniecznie związane ze skryptem phpBB.
jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Statystyki odporne na odświeżanie

Post autor: jaroslw » 04 października 2006, 16:21

Witam,
Stworzyłem sobie prosty licznik odwiedzin. Nie potrafię jednak już samemu uczynić go odpornym na odświeżenia. Przykład na http://www.gim2samorzad.yoyo.pl W menu includuje plik licznik.php Oto jego kod:

Kod: Zaznacz cały

<?php
 $adres='licznik.txt';
 if (file_exists($adres)) $t=file($adres);
                     else $t=array(0);
 $t[0]++;
 if ($plik=fopen($adres,'w'))
 {
  flock($plik,LOCK_EX);
  fputs($plik,$t[0]);
  flock($plik,LOCK_UN);
  fclose($plik);
 }
 echo($t[0]);
?>
Liczba wejść zapisywana jest w pliku tekstowym.

Co mam dodać aby nie zliczało odświeżeń?
Pobierz styl: we_universalwe_clearblue
Nowości i aktualizacje: FacebookGoogle+Twitter

Awatar użytkownika
daroPL
Zasłużony
Posty: 4564
Rejestracja: 24 czerwca 2005, 13:36
Lokalizacja: Poznań
Kontakt:

Post autor: daroPL » 04 października 2006, 16:57

Kod: Zaznacz cały

<?php
$adres='test.txt';
if(file_exists($adres)) $t=file($adres);
  else $t=array(0);
if(!isset($_COOKIE['licznik']))
{
 setcookie("licznik", "zliczono", time()+3600);
 $t[0]++;
 if ($plik=fopen($adres,'w'))
 {
  flock($plik,LOCK_EX);
  fputs($plik,$t[0]);
  flock($plik,LOCK_UN);
  fclose($plik);
  }
}
 echo $t[0];
?>
time()+3600 - czas przez który ciasteczko będzie istniało, po godzinie jeżeli odświeżysz strone doda kolejne zliczenie i tak dalej :)
musiałem wyczyścić trochę temat bo nie mogłem patrzeć na moje byki ;P

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Post autor: jaroslw » 04 października 2006, 17:14

daro pisze:time()+3600 - czas przez który ciasteczko będzie istniało, po godzinie jeżeli odświeżysz strone doda kolejne zliczenie i tak dalej Smile
No i taka opcja by mi pasowała :)
daro pisze:musiałem wyczyścić trochę temat bo nie mogłem patrzeć na moje byki ;P
Nie ma sprawy.

Jest jedno ale. Ta wersja również nie działa. Co więcej pojawił się błąd:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/sites/yoyo.pl/g/i/gim2samorzad/index.php:6) in /var/www/sites/yoyo.pl/g/i/gim2samorzad/licznik.php on line 7
4
gdzie liczba 4 to liczba odwiedzin, jednak dalej nie jest odporne na odświeżenia.

EDIT: dodam jeszcze że nie ma tego ciasteczka na liście kiedy przeglądam je w przeglądarce. Może to pomoże.
Pobierz styl: we_universalwe_clearblue
Nowości i aktualizacje: FacebookGoogle+Twitter

Awatar użytkownika
daroPL
Zasłużony
Posty: 4564
Rejestracja: 24 czerwca 2005, 13:36
Lokalizacja: Poznań
Kontakt:

Post autor: daroPL » 04 października 2006, 17:30

Nagłówki zostały już przesłane...
Na samym początku wyświetlanej strony daj:

Kod: Zaznacz cały

<?php 
ob_start(); 
?>
i na końcu strony:

Kod: Zaznacz cały

<?php
ob_end_flush();
?>

Poczytaj:
http://wiki.php.pl/index.php/Cannot_add ... dy_sent_by...
http://webmade.org/porady/porady.php?id=142

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Post autor: jaroslw » 04 października 2006, 17:33

Dzięki, teraz już gra. Sam bym sobie z tym nie poradził bo nie znam jeszcze na tyle PHP.

[ Dodano: 16 Grudzień 2006, 10:02 ]
Witam, przepraszam, że odświeżam temat ale raczej nie ma sensu zakładać nowego. Więc chciałbym przerobić te statystyki tak, aby ilość odwiedzin była zapisywana bazie danych, a nie w pliku tekstowym. Co miałbym przerobić?
Pobierz styl: we_universalwe_clearblue
Nowości i aktualizacje: FacebookGoogle+Twitter

ODPOWIEDZ

Wróć do „Ogólne dyskusje”