Strona 1 z 1
[PHP][Problem] Skrypt licznika
: czw gru 15, 2005 5:44 pm
autor: MariAnek
[php]<?php
[$plik = "licznik.dat";
fopen($plik, "r+");
$odwiedziny=fgets($plik, 10);
$odwiedziny += 1;
fseek($plik, 0);
fwrite($plik, $odwiedziny, 10);
fclose($plik);
$odw = strval($odwiedziny);
$cyfry = strlen($odwiedziny)-1;
$i = 0;
echo"Odwiedzin:";
do{
echo"<IMG SRC=\"$odw[$i].gif\">";
$i++;
}while($i<=$cyfry);
?>[/php]
mam cyfry pokolei w formacie gif i mam plik o nazwie licznik.dat
scieżke dostępu mam dla pliku licznik data chmud 770
a w dalszym ciagu nie działa mam informacje:
Warning: Supplied argument is not a valid File-Handle resource in /var/www/marianek/index.php on line tu dla linii 4 ,5,6 i 7
Obrazek cyfra:1 mi sie wyświetla

W czym problem?
A może, ktoś ma licznik ,który zlicz cooki wejścia i ponownie zaliczy cooki pojakims czasie np. po 15min?
Teraz mam licznik co zlicza automatycznie wszystkie odswierzenia i przejscia na podstrony

Re: [PHP][Problem] Skrypt licznika
: czw gru 15, 2005 9:57 pm
autor: v0lrath
Ja zrobiłem sobie taki licznik:
[php]<?php
$plik = fopen("licznik.log", "r");
if($myFile)
{
$linia = fgets($plik,filesize("licznik.log")+2);
$licznik=$linia;
fclose($plik);
}
if (!(isset ($timer)))
{
setcookie("timer", time (), time()+2*3600);
$licznik=$licznik+1;
$plik=fopen("licznik.log","w");
fwrite($plik, $licznik);
fclose($plik);
}
else
{
setcookie("timer", time (), time()+2*3600);
}
...
$dlugosc=strlen($licznik);
for ($i=0;$i<$dlugosc;$i++)
{
$zn=substr($licznik,$i,1);
echo("<img src=\"z/c$zn.gif\" border=0 name=\"licz$i\" alt=\"$zn\">");
}
...
?>[/php]
Sprawdź czy masz dobrze ustawione prawa dostępu do pliku i czy on istnieje.
Bo jak nie istnieje i nie ma nadanych praw do zapisu, to skrypt (ani Twój ani mój) nie zadziała. Powinien mieć prawa ustawione na 666 (chmod 666).
To znaczy Twój zadziała i napisze 1 oraz wywali powyższe warningi.
Re: [PHP][Problem] Skrypt licznika
: czw gru 15, 2005 10:12 pm
autor: Stig
MariAnek pisze:a w dalszym ciagu nie działa mam informacje:
Warning: Supplied argument is not a valid File-Handle resource in /var/www/marianek/index.php on line tu dla linii 4 ,5,6 i 7
Obrazek cyfra:1 mi sie wyświetla

W czym problem?
Funkcja
fopen() musi być przekazywana jako wartość zmiennej (uchwytu), o czym mówi
manual.
Re: [PHP][Problem] Skrypt licznika
: czw gru 15, 2005 10:55 pm
autor: MariAnek
Stig pisze:
Funkcja
file() musi być przekazywana jako wartość zmiennej (uchwytu), o czym mówi
manual.
w tym skrypcie nie ma funkcji file() a bład wyskakuje w 4 linijce
$odwiedziny=fgets($plik, 10);
Re: [PHP][Problem] Skrypt licznika
: czw gru 15, 2005 11:04 pm
autor: Stig
Faktycznie, funkcji file() w tym skrypcie nie ma. Oczywiście miałem na myśli funkcję fopen() - zauważ nawet, że link do manuala podany przeze mnie odnosił się własnie do tej funkcji. Treść swojego posta poprawiłem.
Re: [PHP][Problem] Skrypt licznika
: czw gru 15, 2005 11:12 pm
autor: MariAnek
tak ale co jest złego w tym skrypcie
jest przecież odnosnik do pliku i jest parametr r+ który ma zapisywac
a kazdy licznik który mi się uruchomi nie jest odporny na odswiezanie
liczniki wklejam na stronie index.php
w div-ie
a bład wyskakuje 4 linijki
byłem na proponowanej stronie ale w dalszym ciagu nic nie rozumiem
jak wejdziesz na ma stronke to zobaczyż ze licznik dziala za kazdym otwarciem podstrony która jest inkludowana na strone index jak to zablokować
pomocy

Re: [PHP][Problem] Skrypt licznika
: pt gru 16, 2005 12:46 am
autor: v0lrath
Nie zauważyłem tego, ale teraz już widzę.
A więc masz:
[php]
<?php
$plik = "licznik.dat";
fopen($plik, "r+");
$odwiedziny=fgets($plik, 10);
...
?>[/php]
A powinno być:
[php]
<?php
$nazwa_pliku = "licznik.dat";
$plik=fopen($nazwa_pliku,, "r+");
$odwiedziny=fgets($plik, 10);
...
?>[/php]
Re: [PHP][Problem] Skrypt licznika
: pt gru 16, 2005 7:57 am
autor: MariAnek
Ok dzięki za radę
ruszyło jak dodałem
nazwa_
ale wdalszym ciagu nie wiem jak się pozbyc odswierzania

licznik dziala za kazdym otwarciem podstrony, która jest inkludowana na strone index jak to zablokować
próbowałem róznych liczników nawet takie które miały byc odporne na odswierzanie z aktualizacje poradzilimi funkcje
[php]<?php
date ("F d Y H:i:s.", filemtime('index.php'));
?>[/php]czy i w liczniku mozna to gdzies wkleić?
i / albo co zmienić??
Re: [PHP][Problem] Skrypt licznika
: pt gru 16, 2005 1:05 pm
autor: v0lrath
Licznik, którego kod podałem trochę wyżej, blokuje zliczanie na jakiś czas poprzez mechanizm cookies - a więc zlicza realne oddzielne wejścia, a nie odświerzenia strony z tego samego komputera.