User agent : Détection de la machine du visiteur en PHP

Pour connaître les caractéristiques du visteur (Ordinateur, Smartphone, Tablette et type d'OS — notamment iPhone, Android) il suffit d'utiliser la variable $_SERVER['HTTP_USER_AGENT']

Par exemple en tapant le code suivant sur cette page : <?php echo $_SERVER['HTTP_USER_AGENT'] ?> j'obtiens vos informations ci-dessous

claudebot

Depuis un iPhone vous obtiendrez

Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25

Les mots-clé :

  • Mobile : détecte tout ce qui est mobile
  • Windows : Les ordinateurs tournant sous Windows : Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
  • Mac : Les ordinateurs tournant sous Mac : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.8 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.8
  • Linux : Les ordinateurs tournant sous Linux : Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:20.0) Gecko/20100101 Firefox/20.0

Comme on peut le contaster on peut donc savoir quel type de machine, système et navigateur qui rendent visite au site en allant chercher les infos contenues dans cette variable à l'aide la fonction stristr('la chaîne de caractères considérée','le mot à chercher')

exemples :

<?php

$user=$_SERVER['HTTP_USER_AGENT'];

if(stristr($user,'iPhone') //le site est visité depuis un iPhone.

if(stristr($user,'iPad') //le site est visité depuis un iPad.

?>

De même manière vous pouvez rechercher blackberry, palm, iPad etc..

Créer ses stats

Créer un table mysql "stats" avec id (INT auto-incrément)), machine (VARCHAR 15) et navigateur (VARCHAR 15)

Créer un fichier stats.php contenant (par exemple ) ce code avec lequel on détecte machines et navigateurs :

<?php

$user=$_SERVER['HTTP_USER_AGENT'];

if(stristr($user,'Macintosh')){$machine="Mac";}
elseif(stristr($user,'Win')){$machine="PC";}

//- smartphones-----------------
elseif(stristr($user,'iPhone')){$machine="iPhone";}
elseif(stristr($user,'iPod')){$machine="iPod";}
elseif(stristr($user,'Android')){$machine="Android";}
elseif(stristr($user,'iPad')){$machine="iPad";}

else{$machine="Linux";}

if(stristr($user,'Chrome')){$navigateur="Chrome";}
elseif(stristr($user,'Camino')){$navigateur="Camino";}
elseif(stristr($user,'Firefox')){$navigateur="Firefox";}
elseif(stristr($user,'Safari')){$navigateur="Safari";}
elseif(stristr($user,'MSIE')){$navigateur="Explorer";}
elseif(stristr($user,'Opera')){$navigateur="Opera";}
elseif(stristr($user,'Epiphany')){$navigateur="Epiphany";}
elseif(stristr($user,'ChromePlus')){$navigateur="ChromePlus";}
elseif(stristr($user,'Lynx')){$navigateur="Lynx";}


else{$navigateur="inconnu";}

//--- entée des données dans la table stats

mysql_query("insert into stats (machine, navigateur) values ('$machine', '$navigateur)' ", $Votre_Script_de_Connexion);

?>

Requérir ce fichier dans la page d'accueil de votre site :

<?php require_once("stats.php") ?>