Witam
Napisałem sobie skrypt: licznik, który ma zliczać odwiedzających tylko raz w danej sesji przeglądarki i nie zliczać jakiegoś tam IP. Wygląda on tak:
[php:1:684a84f5c6]<?php
session_start();
$ip = $REMOTE_ADDR;
if (!$licznik) {
if ($ip != '195.136.25.129') {
$plik = fopen ("pliki/licznik.txt", "r");
flock ($plik, 1);
$licznik = fgets ($plik, 100);
flock ($plik, 3);
fclose ($plik);
$licznik++;
$plik = fopen ("pliki/licznik.txt", "w");
flock ($plik, 2);
fputs ($plik, $licznik);
flock ($plik, 3);
fclose ($plik);
}
}
session_register ("licznik");
?>[/php:1:684a84f5c6]
Jak się wszyscy domyślają działa, ale dla register_globals = On. Próbowałem napisać go dla Off, ale jakoś nie udało mi się. Zamieniłem:
[php:1:684a84f5c6]<?php
$ip = $REMOTE_ADDR;
?>[/php:1:684a84f5c6]
na
[php:1:684a84f5c6]<?php
$ip = $_SERVER ['REMOTE_ADDR'];
?>[/php:1:684a84f5c6]
i
[php:1:684a84f5c6]<?php
if (!$licznik) {
?>[/php:1:684a84f5c6]
na
[php:1:684a84f5c6]<?php
if (!$_SESSION ["licznik"]) {
?>[/php:1:684a84f5c6]
i nie działa. Zlicza przy każdym odświeżaniu. Dlaczego?
Misiek