Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Licznik
Forum PHP.pl > Forum > Gotowe rozwiązania
Misiek
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
BzikOS
To jeszcze zamień:

[php:1:1d211c62dd]<?php
session_register ("licznik");
?>[/php:1:1d211c62dd]

na

[php:1:1d211c62dd]<?php
$_SESSION['licznik'] = True;
?>[/php:1:1d211c62dd]
Misiek
Oki. Dzięki. Działa Pomogłeś mi smile.gif
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-2024 Invision Power Services, Inc.