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".
|