ďťż

[PHP] Niedziałający licznik na odświeżanie

       

Podstrony


telcocafe

Witam
Zrobiłem sobie prosty licznik odporny na odświeżanie:
<? if (empty($licznik)){ $plik = fopen('licznik.txt','r'); $liczba = fread($plik, filesize('licznik.txt')); $liczba++; $plik = fopen('licznik.txt','w+'); fwrite($plik, $liczba); fclose($plik); setcookie('licznik', 'licz'); } ?>
I mam stronkę w serwisie prv.pl i na tam ten skrypt nie działa (skrypt umieściłem na samym początku pliku), i co każde odświeżnie wartość licznika powiększa się. Skrypt sprawdzałem na Krasanlu i działało wszysko OK a na stronce już nie :( Może to być wina serwisu PRV?




Witam
Zrobiłem sobie prosty licznik odporny na odświeżanie:
<? if (empty($licznik)){ $plik = fopen('licznik.txt','r'); $liczba = fread($plik, filesize('licznik.txt')); $liczba++; $plik = fopen('licznik.txt','w+'); fwrite($plik, $liczba); fclose($plik); setcookie('licznik', 'licz'); } ?>
I mam stronkę w serwisie prv.pl i na tam ten skrypt nie działa (skrypt umieściłem na samym początku pliku), i co każde odświeżnie wartość licznika powiększa się. Skrypt sprawdzałem na Krasanlu i działało wszysko OK a na stronce już nie :( Może to być wina serwisu PRV?

1 masz obsluge php na serwerze?
2 sprawdz uprawnienia dostepu do pliku licznik.txt

Skoro wartość licznika co każde odświeżanie strony powiększa się, to napewnow serwer obsługuje PHP i plik ma dobre uprawnienia.

spróbuj tego (moja klasa licznika dla www):

class counter { var $visits; var $file_name; public function __construct($file_name) { $this->file_name = $file_name; if(!file_exists($this->file_name)) { $this->visits = 0; } else { $this->visits = file_get_contents($this->file_name); } $this->count_visit(); } public function __destruct() { file_put_contents($this->file_name,$this->visits); } protected function count_visit() { if(!isset($_SESSION)) { session_start(); } if(!isset($_SESSION['counter'])) { $_SESSION['counter']=$this->visits; $this->visits = $this->visits+1; file_put_contents($this->file_name,$this->visits); } } public function display_counts() { echo "$this->visits"; } public function get_counts() { return $this->counts; } }
Użytkownik Krzymar edytował ten post 06 wrzesień 2006, 08:32


Gdybyś pisał poprawnie, to by działało. Najprawdopodobniej na serwerze masz wyłączone register_globals (i słusznie) a u siebie masz włączone, przez co źle piszesz skrypty.
Zamień:
if (empty($licznik)){
Na:
if (empty($_COOKIE['licznik'])){

@down już poprawiłem, drobna pomyłka ;)
Użytkownik .:dR@kE:. edytował ten post 06 wrzesień 2006, 14:38

if (empty($_SESSION['licznik'])){
a czy nie przypadkiem
if (empty($_COOKIE['licznik'])){
;) ???

A jak nie to, to może parser rząda ustawienia czasu wygaśnięcia ciacha ?

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.