Hola a todos,
necesito hacer una detección del navegador que está usando el visitante de mi web. Por lo que he leido la función get_browser() me podía ser de ayuda pero al ejecutarla el script me da un error
Código:
Warning: get_browser(): browscap ini directive not set. in E:\web\checkBrowser.php on line 4
que parece ser debido a que no está configurado correctamente la opción de configuración browscap en php.ini. Para intentar resolver el problema me he creado este script:
Código:
<?
echo checkBrowser();
function checkBrowser(){
$agent = strtolower($_SERVER["HTTP_USER_AGENT"]);
echo " $agent - ";
$Arr_brow = array("amaya", "firefox", "maxtor", "mozilla", "msie", "opera");
$found = false;
while(list($c, $v) = each($Arr_brow)){
if(strstr($agent, $v) and !$found){
$found = true;
return $v;
}
}
}
?>
que parece funcionar bien ... pero sólo lo parece. Os pongo unos ejemplos y lo veréis claro.
Si uso Firefoz como navegador obtengo:
$agent -> mozilla/5.0 (windows; u; windows nt 5.0; es-es; rv:1.8.0.3) gecko/20060426 firefox/1.5.0.3
resultado de la detección -> firefox (
correcto)
Si uso Opera:
$agent -> opera/9.00 (windows nt 5.0; u; en)
resultado de la detección -> opera (
correcto)
Si uso Internet Explorer:
$agent -> mozilla/4.0 (compatible; msie 6.0; windows nt 5.0; .net clr 1.1.4322)
resultado de la detección -> mozilla (
incorrecto)
¿Cómo podría hacerlo bien? Muchas gracias por la ayuda
P.D. las pruebas las estoy haciendo en una máquina con Windows y luego lo publicaré en una con Linux (esto no importa, ¿verdad?) Así todo, ¿cómo podríamos hacer la detección sin get_browser()?