IPRO - PC Magazine Romania, Martie 2004
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB
Contor Flash cu script PHP
Oprean Traian
Există situri web care îndeplinesc funcția de contorizare oferind chiar mai multe informații privind vizitatorii sitului înscris și anume: numărul de vizitatori unici, situl destinatar de pe care s-a redirectat către pagină, sistemul de operare folosit, browserul, rezoluția, numărul de culori, IP-ul, țara. Aceste informații pot fi filtrate după zile/luni/căutari web/ etc. pentru a putea avea o mai bună perspectivă asupra canalizarii acestor vizitatori. Vă voi arata un mod simplu de a crea un astfel de contor (Live Counter) folosind Macromedia Flash și PHP. Mai întâi vom realiza aplicația Flash. Vom crea o casuță de text dinamica cu o variabilă numită Contor și vom implementa o comandă loadvariablesNum .
Pe primul cadru al aplicației vom introduce următoarea comandă:
loadVariablesNum ("Contor.php?ran="+random(99), 0);
care va încărca și rula fișierul Contor.php pe nivelul 0, deci cel curent al aplicației Flash. Se va incrementa variabila contor cu încă o unitate. Folosim și o variabilă ran inițializată cu un număr aleator ("random" în engleză) intre 0 și 99 pentru a rula un fișier PHP unic de fiecare dată. Dacă omiteți acest lucru, acest script PHP va fi încărcat din cache iar fișierul contor nu ar fi actualizat după cum ați dorit.
Pe cadrul doi vom introduce linia de cod :
loadVariablesNum("Contor.txt?ran="+
random(99), 0);
Această linie va încărca din fișierul text Contor.txt numărul de vizitatori ai paginii curente, număr actualizat în cadrul precedent. Vom lăsa în jur de 50 de cadre libere, numărul de cadre reprezentând perioada între recitirea contorului, iar apoi vom implementa o comandă de repoziționare de etichetă
gotoAndPlay(2);
Dacă în această perioadă de 50 de cadre au mai existat și alți vizitatori, atunci a fost încărcată o alta instanță a aplicației Flash și a fost executată linia de cod din primul cadru care a rulat fișierul PHP, deci contorul a fost modificat și va fi reîncărcat din fișierul text. Acum vom trece la fișierul PHP Contor.php:
<? $fis = "Contor.txt";
$fp = fopen( $fis,"r");
$ContorVechi = fread($fp, 100);
fclose( $fp );
$ContorVechi = split ("=", $ContorVechi, 6);
$ContorNou = $ContorVechi[1] + ´1´;
$ContorNou = "Contor=$ContorNou";
$fp = fopen( $fis,"w+");
if (flock($fp, 2)) {
fwrite($fp, $ContorNou, 100);}
fclose( $fp );
print "Contor=$ContorNou";
?>
Acest fișier va fi salvat în același director de unde se va rula aplicația Flash. Pentru a ințelege mai bine cum funcționează voi încerca să explic pe rând ce face fiecare linie de cod. Menționez faptul că această numerotare de linii nu va fi regăsită în fișierul PHP, aceasta fiindu-mi necesară doar pentru explicațiile de mai jos.
Linia 1 - Spune serverului să înceapă să proceseze un script PHP.
Linia 2 - Se inițializează variabila fis cu numele fișierului unde va fi stocat
numărul de vizitatori. Amintesc că în PHP orice variabilă are ca sufix caracterul
" $ ".
Linia 3 - Se deschide fișierul pentru citire.
Linia 4 - Această linie încarcă conținutul fișierului într-o variabilă denumită
ContorVechi
Linia 5 - Închide fișierul text.
Linia 6 - Codul splitează linia citită în 2 parți, parți care vor fi stocate
într-un șir unde $ContorVechi[0] va conține "Contor=" iar $ContorVechi[1]
va indica numărul propriuzis.
Linia 7 - Incrementează contorul cu o unitate.
Linia 8 - Vom modifica stringul care va fi stocat în fișier, string ce va conține
și șirul de caractere "Contor=" parte ce a fost înlăturată la linia
6.
Linia 9 - Se deschide fișierul pentru scriere.
Linia 10 - Aici folosim un argument opțional flock (file locking) pentru cazul
în care se va suprascriere fișierul în acelaș timp. Sistemul va returna o eroare
de scriere. Acest argument trebuie folosit dacă aveți mulți vizitatori care
vă accesează pagina simultan.
Linia 11 - Rescrierea în fișier a valorii noi al contorului.
Linia 12 - Închide fișierul text.
Linia 13 - Linia printează valoarea contorului, valoare ce este preluată de
aplicația Flash și afișată în casuța de text dinamica la rularea cadrului 2.
Linia 14 - Sfârșitul scriptului PHP.
Notă: Pe serverul de hosting fișierul Contor.txt va avea nevoie de drepturile 777 (read, write și execute la owner group și others). Puteți face acest lucru folosind comanda "chmod 777 Contor.txt".
|