Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2006, 02:56
Avatar de nosoynadie
nosoynadie
 
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 4 meses
Puntos: 1
deteccion de navegador sin get_browser

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()?
__________________
http://www.nosoynadie.net/

Última edición por nosoynadie; 26/07/2006 a las 11:59