Script propriu pentru vizitatori unici

0
417
Script propriu pentru vizitatori unici
Ti-a placut acest articol? Acorda-i o nota

Tutorial creare script propriu pentru vizitatori unici ( unique daily visitors counter ) In acest tutorial va voi invata cum sa va faceti un script propriu pentru site / forum /blog – care va numara cati vizitatori unici aveti pe zi (unique daily visitors counter). Este util pentru cei care nu vor bannere cu trafic/wta/gtop. Il puteti folosi pe orice site, foarte usor, incluzand fisierul counter.php

Intai cream o baza de date MySQL.

 CREATE DATABASE `scripts` ;

 

Apoi cream un tabel si coloanele necesare.

CREATE TABLE `scripts`.`visitors` (
    `ip` VARCHAR( 40 ) NOT NULL ,
    `date` VARCHAR( 8 ) NOT NULL ,
    `time` INT( 15 ) NOT NULL DEFAULT '0' ,
    PRIMARY KEY ( `time` )
    ) ENGINE = MYISAM

 

Acum vom crea fisierul counter.php.
N-are rost sa iau codul pe bucati. Voi folosi comentarii in dreptul liniilor, astfel incat veti intelege mai bine.

 <?php                                                                               

    $db_host = 'localhost'; //host-ul serverului MySQL
    $db_name = 'scripts';  //numele bazei de date
    $db_user = 'root';  //user-ul bazei de date
    $db_pass = '';  //parola bazei de date
    $t = time();  //functie care creaza un numar, corespunzand timpului actual
    $d = date("j/m/y");  //functie care creaza data zilei de azi
    $sec = 86400;  //timpul (in secunde) in care un ip va aparea ca utilizator online, dupa accesarea paginii                                                                                         
    $timeout = $t - $sec;  //un timeout, dupa care sunt sterse ip-urile din baza de date
    $ip = $_SERVER['REMOTE_ADDR'];  //variabila in care se stocheaza un ip
    $db_con = @mysql_connect($db_host, $db_user, $db_pass) or die ('Eroare conexiune.');  //conexiunea la baza de date
    @mysql_select_db($db_name) or die ('Nu s-a selectat baza de date.');  //selectarea bazei de date
    $q1 = "INSERT INTO visitors (ip, date, time) VALUES ('$ip', '$d', '$t')";  //query-ul de introducere a timpului, ip-ului si paginii actuale in baza de date                                                           
    @mysql_query($q1) or die ('Eroare introducere date.');  //parcurgerea query-ului
    $q2 = "DELETE FROM visitors WHERE time < '$timeout'";  //query-ul de stergere a intrarilor din baza de date, dupa trecerea secundelor
    @mysql_query($q2) or die ('Eroare stergere date.');  //parcurgerea query-ului
    $q3 = "SELECT DISTINCT ip FROM visitors";  //query-ul de selectare a ip-urilor distincte din baza de date pe pagina actuala
    $result = @mysql_query($q3) or die ('Eroare selectare date.');  //parcurgerea query-ului
    $users = @mysql_num_rows($result);  //numarul de linii, dupa parcurgerea query-ului                                                                 
    @mysql_close($db_con);  //inchiderea conexiunii la baza de date   
    if($users == 1) {  //cand cineva acceseaza pagina, variabila devine 1 si se pune conditia unui vizitator
      echo "Azi siteul a avut 1 vizitator unic.";  //va afisa un vizitator in ultimele 24 de ore
    } else {  //altfel
      echo "Azi siteul a avut ".$users." de vizitatori unici.";  //va afisa cati vizitatori unici au accesat pagina
    }

    ?>

NICIUN COMENTARIU

LĂSAȚI UN MESAJ