Flash i PHP - Licznik odwiedzin
Łukasz R. - 15-11-2005 12:10
Flash i PHP - Licznik odwiedzin
Witam. Mam pewien problem związany z PHP. Założyłem sobie taką stronkę:
www.hitman-zone.prv.pl (albo
http://lukaszr.ovh.org - jak kto woli ;) ). Strona jest w rozbudowie ;). Na stronie chciałem zamieścić licznik odwiedzin oparty na ActionScripcie (Flash) i PHP. Oto fragment kodu ActionScript (Flash):
loadVariables ("licznik.txt?"+new Date().getTime(), "/licznik");
count = Number(count) + 1;
loadVariablesNum ("licznik.php4?count=" + count, 0);
stop();
objaśnienie kodu:
Pierwsza linia skryptu wczytuje z serwera plik o nazwie "licznik.txt" i dowiązuje do jego nazwy aktualną godzinę (dowiązanie ma na celu ominięcie problemów wynikających z zapisywaniem plików przez przeglądarki w pamięci podręcznej). Plik "licznik.txt" wygląda następująco:
count=0&loaded=1
W pliku tym zdefiniowane są dwie zmienne: count=0 oraz loaded=1. W tym momencie interesuje nas zmienna "count". Zmienna "loaded" jest w tym przypadku nie istotna.
Druga linia skryptu definiuje zmienną o nazwie "count". Wyrażenie Number(count)+1 powoduje skonwertowanie zmiennej "count" z pliku txt do typu liczbowego i zwiększenie wartości zmiennej o jeden.
Trzecia linia skryptu odczytuje plik o nazwie "licznik.php4" i przekazuje do niego aktualną wartość zmiennej "count" (wartość zwiększoną o jeden).
Czwarta linia skryptu - stop(); - jest w tym przypadku nieistotna.
Plik PHP4 wygląda następująco:
<?php
$count = $_GET['count'];
$file=fopen("licznik.txt","w");
fwrite($file, "count=$count&loaded=1");
fclose($file);
?>
objaśnienie:
Druga linia kodu definiuje zmienną "count" i pobiera zmienną "count" z Flash'a (tą, która została wcześniej zwiększona o jeden). Przypadek sprawił, że zmienne we Flashu i w pliku PHP mają taką samą nazwę ;).
Trzecia linia definiuje zmienną "file" i przypisuje do niej plik o nazwie "licznik.txt". Parametr "w" powoduje, że wskaźnik zostanie ustawiony na początku pliku i cała zawartość pliku będzie zastąpiona nowym wpisem.
Czwarta linia dopisuje do otwartego pliku wyrażenie "count=$count&loaded=1", gdzie $count to zmienna, do której wcześniej została pobrana zmienna z Flash'a.
Piąta linia zamyka plik z wprowadzonymi zmianami.
Mam nadzieję, że dobrze rozumię ten kod. Nie znam się na PHP, więc mogłem się gdzieś pomylić.
Teraz opiszę problem. Otóż teoretycznie wydaje się, że wszystko powinno działać poprawnie. Podczas uruchamiania strony i animacji Flashowej zmienna count jest we Flashu zwiększana o jeden i poprzez kod PHP powinna być zapisana do pliku "licznik.txt". Jednak jak się okazuje plik licznik.txt wogóle nie zostaje zmodyfikowany. Pytanie: dlaczego?. Ustawiłem atrybuty plików .php4 i .txt odpowiednio na 775 i 777. Czytałem gdzieś, że na większości serwerów wyłączona jest możliwość modyfikowania plików poprzez PHP. Nie wiem czy na Waszym serwerze opcja fwrite jest dostępna? Mogę liczyć na jakieś wyjaśnienie tej sytuacji? Dla ciekawskich podam link do strony, na której znajduje się tutorial dotyczący licznika we Flashu:
http://otljarocin.sisco.pl/webmaniak...k/licznik1.phpCzekam na odpowiedzi ;).
Frano - 15-11-2005 21:49
Sorry, ale będzie bardzo nie na temat. :)
Wykonanie strony jest zajeb*ste :eek:
Wielki Brat jest pod wrażeniem :D
Jedyna rzecz która mnie drażni to fakt że trzeba podwójnie kliknąć na strzałkę żeby zatrzymać scroll (niektórzy mogą nawet na to nie wpaść - tak jak ja na początku ;) ).
Może lepiej dać scroll po najechaniu...
Łabędź - 15-11-2005 22:01
Cytat:
Teraz opiszę problem. Otóż teoretycznie wydaje się, że wszystko powinno działać poprawnie. Podczas uruchamiania strony i animacji Flashowej zmienna count jest we Flashu zwiększana o jeden i poprzez kod PHP powinna być zapisana do pliku "licznik.txt". Jednak jak się okazuje plik licznik.txt wogóle nie zostaje zmodyfikowany. Pytanie: dlaczego?. Ustawiłem atrybuty plików .php4 i .txt odpowiednio na 775 i 777. Czytałem gdzieś, że na większości serwerów wyłączona jest możliwość modyfikowania plików poprzez PHP. Nie wiem czy na Waszym serwerze opcja fwrite jest dostępna? Mogę liczyć na jakieś wyjaśnienie tej sytuacji?
Chyba najbardziej zakręcony licznik odwiedzin strony jaki widziałem.
Przede wszystkim: plik .php powinien mieć uprawnienia 755:
http://60free.ovh.org/pl/support/faq.html#faq52Proponuje sprawdzić najpierw działanie samego skryptu PHP, a dopiero później łączyć go z FLASH-em
pozdrawiam
Łukasz R. - 16-11-2005 10:58
Eureka !! :D Dzięki Łabędź ;). Faktycznie, po poprawieniu tego jednego atrybutu wszystko działa jak należy :D. Przeglądałem co prawda FAQ, ale jakoś mi ten punkcik umknął... Jeszcze raz wielkie dzięki !! A co do scrolla... chyba Frano ma rację, będzie trzeba to poprawić ;).
PS. Mam jeszcze jedno małe pytanie nie związane z licznikiem. Otóż chciałem założyć księgę gości na
www.prv.pl i ustawić swój własny styl poprzez podanie linka do pliku css. Plik css umieściłem na Waszym serwerze, ale jak się okazało po uruchomieniu księgi gości plik ten jest takjakby "niewidoczny" dla księgi (księga nie przybiera mojego stylu, że tak powiem :D ). Nie wiem czy w tym wypadku też wystarczyłoby odpowiednio poustawiać atrybuty plików? Czytałem gdzieś, że aby księga działała poprawnie serwer, na którym jest plik css, musi mieć dostępną opcję hotlingowania, czy cuś... Nie wiem, bo się za bardzo nie znam na sieci i serwerach, więc czy mógłbym prosić o jakieś słowo podpowiedzi?
Łabędź - 16-11-2005 11:26
Cytat:
Eureka !! :D Dzięki Łabędź ;). Faktycznie, po poprawieniu tego jednego atrybutu wszystko działa jak należy :D. Przeglądałem co prawda FAQ, ale jakoś mi ten punkcik umknął... Jeszcze raz wielkie dzięki !! A co do scrolla... chyba Frano ma rację, będzie trzeba to poprawić ;).
PS. Mam jeszcze jedno małe pytanie nie związane z licznikiem. Otóż chciałem założyć księgę gości na www.prv.pl i ustawić swój własny styl poprzez podanie linka do pliku css. Plik css umieściłem na Waszym serwerze, ale jak się okazało po uruchomieniu księgi gości plik ten jest takjakby "niewidoczny" dla księgi (księga nie przybiera mojego stylu, że tak powiem :D ).
Podaj kod w którym includujesz 'css'.
pozdrawiam
zanotowane.pldoc.pisz.plpdf.pisz.plkonstruktor.keep.pl