INDIVIDUARE IL BROWSER DELL' UTENTE
by Michele Cotrufo m.cotrufo@email.it
Ogni qualvolta un utente visita una pagina del vostro sito, egli invia una richiesta in formato HTTP al server sul quale risiede il vostro sito. In questa stringa, oltre a trovarsi il nome della pagina richiesta dall'utente, ci sono molte informazioni sul computer di questi, come sistema operativo e browser utilizzato. Analizzando questa stringa, quindi, si è in grado di stabilire il browser dell'utente.
Ecco un esempio di richiesta HTTP:
GET /sito/index.php HTTP/1.1" 200 4615 "http://localhost/sito/index.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; it-IT; rv:1.7.8) Gecko/20050511 Firefox/1.0.4"
Tra le varie informazioni contenute, quella che ci interessa è:
Mozilla/5.0 (Windows; U; Windows NT 5.1; it-IT; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Qui sono contenute informazioni sull'OS e il browser dell'utente.
Da una prima lettura balza subito all'occhio Firefox/1.0.4. Abbamo dunque stabilito che questo utente Usa Firefox. Ora è necessario creare una funzione che analizzi la stringa e stabilisca automaticamente il browser dell'utente.
La stringa che dovremo esaminare è contenuta nell indice HTTP_USER_AGENT di $_SERVER, perciò potremo ottenerla in qualsiasi momento usando $_SERVER['HTTP_USER_AGENT']
Quindi, la nostra funzione esaminerà questa stringa verificando se in essa è contenuta una parola che identifica un browser. Per comodità, creiamo un array nel quale ogni chiave è il nome di un browser, e il relativo valore è costituito dalla parola o dalle parole che lo identificano.
Per esempio, alla chiave "Netscape" corrisponde un valore "Nav|Gold|x11|Netscape", questo perchè la presenza di una qualsiasi di queste parole identifica il browser. ( il carattere | funge da OR). Dopodiche con un foreach esaminiamo tutti i valori dell'array e, con la funzione eregi, verifico la presenza del valore nella stringa. Se il valore è presente, restituisco la chiave (ovvero il nome edl browser). Se non viene trovato nessun browser, il ciclo foreach finisce e la funzione restituisce "Altro", in quanto non si è stati in grado di stabilire il browser.
Ecco il codice
<?
function GetBrowser(){
$browser = array("Internet Explorer" => "MSIE",
"FireFox" => "Firefox",
"Lynx" => "Lynx",
"Opera" => "Opera",
"WebTV" => "WebTV",
"Konqueror" => "Konqueror",
"Bot" => "bot|Google|slurp|scooter|spider|infoseek",
"Netscape" => "Nav|Gold|x11|Netscape",
);
foreach($browser as $chiave => $valore){
if(eregi($valore, $_SERVER["HTTP_USER_AGENT"])){
return $chiave;
}
}
return "Altro";
}
?>
La si può utilizzare cosi:
<?
echo GetBrowser();
?>
Per informazioni e chiarimenti scrivetemi!
Michele Cotrufo - m.cotrufo@email.it
Aggiungi un commento