Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: licznik odwiedzin
Forum PHP.pl > Forum > PHP
marek_90
Witam.

Mam taki problem z licznikiem odwiedzin. Dodam, że jestem początkującym programistą php, wzorowałem się na gotowym skrypcie.

Całość kodu wygląda następująco:
  1. <?php
  2.  
  3. if((!isset($_COOKIE['licznik-tab'])) && (!strstr($_SERVER['HTTP_REFERER'], "localhost"))) {
  4. $plik = fopen("licznik.txt", "r");
  5. $tekst = fread($plik, filesize("licznik.txt"));
  6. $dane = explode(";", $tekst);
  7. fclose($plik);
  8. $plik = fopen("licznik.txt", "w");
  9. flock($plik, 2);
  10. $dane[0]++;
  11. fwrite($plik, "$dane[0];", 15);
  12. flock($plik, 3);
  13. fclose($plik);
  14. setcookie("licznik", "zliczono", 0);
  15. }
  16. else {
  17. $plik = fopen("licznik.txt", "r");
  18. $tekst = fread($plik, filesize("licznik.txt"));
  19. $dane = explode(";", $tekst);
  20. }
  21.  
  22. ?>


No i wyświetlenie
  1. <p><span class="style1">Do tej pory odwiedziło nas</span> <?php ob_start(); echo($dane[0]); ob_end_flush(); ?> <span class="style2">użytkowników.</span></p>


Problem polaga na zliczeniu każdego odświeżenia strony.
i takim komunikacie
Notice: Undefined index: HTTP_REFERER in C:\Program Files\wamp\www\strona\index.php on line 55

a linia 55 wygląda tak :
  1. if((!isset($_COOKIE['licznik-tab'])) && (!strstr($_SERVER['HTTP_REFERER'], "localhost"))) {


hind
1. HTTP_REFEREF nie zawsze występuje
2. W większości wypadków Error reporting jest ustawiony aby nie wyświetlać noticów
3.
Kod
<?php ob_start(); echo($dane[0]); ob_end_flush(); ?>

po co dawać ob_start, jeśli z tak zdobytymi danymi nic się nie chce robić ?
Kod
<?php echo $dane[0]; ?>


wywal sprawdzanie referera
Kod
    if((!isset($_COOKIE['licznik-tab']))) {
marek_90
Teoretycznie teraz działa poprawnie ale jest jedna rzecz, dalej zlicza przy każdym odświeżeniu strony. Czy to kwestia ustawienia cookies w inny sposób ?
Fifi209
Cytat(marek_90 @ 16.11.2010, 12:41:50 ) *
Teoretycznie teraz działa poprawnie ale jest jedna rzecz, dalej zlicza przy każdym odświeżeniu strony. Czy to kwestia ustawienia cookies w inny sposób ?

Ustawiasz cookie o nazwie: licznik, a sprawdzasz licznik-tab
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.