RGZ Gaming Forum


 
AcasaUltimele imaginiCăutareÎnregistrareConectare

Distribuiţi|

Contorizarea numarului de accesari sau vizitatori unici

Vezi subiectul anterior Vezi subiectul urmator In jos
AutorMesaj
Agnostic
Moderator
Agnostic

Rank: Moderator
Status:
Posturi : 1146
Reputatie : 36
Data de Inscriere : 09/02/2014
Oras : RGZ City
Varsta : 25
Contorizarea numarului de accesari sau vizitatori unici  Empty
MesajSubiect: Contorizarea numarului de accesari sau vizitatori unici Contorizarea numarului de accesari sau vizitatori unici  EmptyMier Aug 20, 2014 12:23 pm

In acest tutorial va voi arata cum sa calculati numarul de vizitatori unici al unei pagini web cu ajutorul PHP. Pentru fiecare pagina in care vom folosi aceasta metoda de contorizare vom crea un cookie diferit.

Un cookie este un fisier text ce este salvat de catre browser pe calculatorul utilizatorului. Un cookie retine una sau mai multe perechi de tipul nume-valoare, ce pot fi encriptate pentru a securiza datele.

In cadrul acestui tutorial vom folosi cookie-uri diferite pentru fiecare pagina. Acest lucru este necesar pentru a putea contoriza cate o vizita pe fiecare pagina pe care utilizatorul o acceseaza.

Cookie-ul va fi initializat utilizand functia predefinita setcookie() din php, ce are ca parametri numele cookie-ului, valoarea si ora cand expira. Timpul de expirare este calculat cu functia time() - ce returneaza data si ora curenta exprimate in secunde, la care adaugam o durata de 24 de ore, exprimata de asemenea in secunde. In acest mod, un vizitator va fi contorizat o singura data pe zi.

Code:

Cod:
<?php
// calculam timpul de expirare al cookie-ului in secunde (timpul curent + 24 h)
$expira = time()+60*60*24;
?>




Un utilizator va fi identificat prin adresa sa IP. Desigur, daca dintr-un anumit motiv, aceasta se schimba la repornirea calculatorului sau reconectarea la internet, utilizatorul respectiv va fi contorizat ca un nou vizitator. Adresa IP a utilizatorului poate fi preluata din variabila superglobala $_SERVER, mai precis ea este returnata de proprietatea $_SERVER['REMOTE_ADDR']:

Code:

Cod:
<?php
// memoram adresa ip a utilizatorului in variabila $ip
$ip = $_SERVER['REMOTE_ADDR'];
?>



Numararea vizitelor (numara-vizite.php)
Pentru inceput, trebuie sa ne asiguram ca accesarile unei pagini vor fi memorate. Vom atribui fiecarei pagini contorizate un fisier text. Apoi, cu ajutorul valorii returnate de functia basename($_SERVER['SCRIPT_FILENAME']), ce va fi stocata in variabila $pagina, putem afla numele fisierului pentru fiecare pagina in parte.

Code:

Cod:
<?php $pagina = basename($_SERVER['SCRIPT_FILENAME']);?>



In acest mod, variabila $pagina va contine titlul paginii cu extensia ".php". De exemplu, daca includem "numara-vizite.php" in fisierul "index.php", variabila $pagina va fi egala cu "index.php".

In continuare, vom crea un fisier text cu acelasi nume. Pentru aceasta, inlocuim extensia .php a fisierului cu .txt :

Code:

Cod:
<?php
// Schimbam extensia din ".php" in ".txt"
// Rezultat: "index.txt"
$pagina = str_replace('.php','.txt',$titlu_site);
?>



Apoi, cream directorul counter si deschidem cu functia fopen fisierul ce va memora accesarile paginii. Atribuim continutul fisierului variabilei $contents, careia la randul ei ii adaugam "1". Iata codul complet:

Code:

Cod:
<?php
$pagina = basename($_SERVER['SCRIPT_FILENAME']);


 
// Schimbam extensia din ".php" in ".txt"
$pagina = str_replace('.php','.txt',$pagina);
 
// Stabilim locatia fisierului
$locatie = "counter/$pagina";
 
$fp = fopen ($locatie, "a+");
fwrite ($fp, "");
fclose ($fp);
 
// Citim continutul fisierului

Cod:
$fd = fopen ($locatie, "r");
$contents = fread ($fd, filesize($locatie));
fclose ($fd);
 


// Adaugam o accesare noua

Cod:
$contents=$contents+1;
echo "<span class='vizualizari'>";
echo "$contents vizualizari";
echo "</span>";


 
// Salvam noua inregistrare

Cod:
$fp = fopen ($locatie, "w");
fwrite ($fp,$contents);
fclose ($fp);


 
// memoram adresa ip a utilizatorului in variabila $ip

Cod:
$ip = $_SERVER['REMOTE_ADDR'];
// calculam timpul de expirare al cookie-ului in secunde (timpul curent + 24 h)
$expira = time()+60*60*24;
?>
Sus In jos

Contorizarea numarului de accesari sau vizitatori unici

Vezi subiectul anterior Vezi subiectul urmator Sus

Subiecte similare

-
t [ACCEPTAT][Propunere] Script Vizitatori
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
RGZ Gaming Forum  :: »[RGZ] Zona IT & Web :: Resurse, stiinta si tehnologie :: Limbaje de Programare :: PHP-