entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

-1voto

Detectar con precision el sistema y navegador del usuario

hola muchachos como de costumbre estoy explorando nuevas posibilidades en esta ocasion como dice mi pregunta estoy probando a detectar el sistema y el browser del cliente pero al hacerlo solo me devuelve una lista con todos los navegadores y con algunos sistemas por eso he estado investigando y he encontrado algunos codigos ya resueltos pero sin ninguna explicacion del funcionamento ni nada y como ami no me gusta copiar y pegar sin entender bien como funciona no lo tome porque me gustaria entender como funciona
entonces se que la superglobal request admite algunos parametros relacionados al servidor entre los cuales se encuentran el agente del usuario que seria el sistema y el navegador mi intencion es que me no me bote un resultado preciso o almenos cercano

$host = $_SERVER['REMOTE_HOST'];
$plataforma = $_SERVER['HTTP_USER_AGENT'];

echo $plataforma."<br>".$host."<br>";

output

Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

sin embargo mi sistema es windows 8 y mi navegador es chrome

ademas entre los parametros hay uno que me da curiosidad es el parametro host, lo he probado en local y me bota un error tambien lo he probado en un hosting pero no me devuelve nada ningun mensaje, me gustaria saber que dato devuelve este parametro

1voto

Peter comentado

Esta web tiene un montón de ejemplos que seguramente te ayudan.

Saludos.

0voto

steven comentado

despues de este cometario quien hace el troll ... no te cuesta nada brindar una respuesta breve o almenos decir no crees que antes de venir aqui a hice un monton de busquedas mi intencion es profundizar el tema

1 Respuesta

1voto

magarzon Puntos30650

Manual oficial de PHP sobre las entradas de $_SERVER, en español. No es tan difícil encontrar información: http://php.net/manual/es/reserved.variables.server.php

Si vas al apartado de REMOTE_HOST, te indica que necesitas hacer ajustes en la configuración de Apache (seguramente en nginx también) para obtener ese valor. Por eso te da error (seguramente porque no exista y no compruebas primero su existencia) o te devuelve vacío en el hosting

En cuanto al user agent, es el correcto para Chrome en Windows 8:
Mozilla 5.0 => Esto es porque es compatible con Mozilla 5.0. Realmente tenía sentido antiguamente, ahora ya no.
Windows NT 6.3 => Esto es lo que indica que es Windows 8
WOW64 => Que tienes una versión de Chrome de 32 bits ejecutándose en un SO de 64
AppleWebKit/537.36 (KHTML like Gecko) => Que está basado en el motor webkit para navegadores, la misma base que Safari, y que a su vez se basa en KHTML (aunque esto ya no es cierto del todo, porque Chrome utiliza un fork de Webkit llamado Blink)
Chrome/56.0.2924.87 => Evidente, que es Chrome y la versión
Safari/537.36 => Que está basado en Safari, como antes lo de Webkit

0voto

steven comentado

pasa lo mismo

<?php

$plataforma = $_SERVER['HTTP_USER_AGENT'];

$navegador = get_browser($plataforma, true);
print_r($navegador);

?>

output

Array ( [browser_name_regex] => ~^.$~ [browser_name_pattern] => [browser] => Default Browser [version] => 0 [majorver] => 0 [minorver] => 0 [platform] => unknown [alpha] => [beta] => [win16] => [win32] => [win64] => [frames] => 1 [iframes] => [tables] => 1 [cookies] => [backgroundsounds] => [cdf] => [vbscript] => [javaapplets] => [javascript] => [activexcontrols] => [isbanned] => [ismobiledevice] => [issyndicationreader] => [crawler] => [cssversion] => 0 [supportscss] => [aol] => [aolversion] => 0 )

0voto

magarzon comentado

Pues lo de siempre, configuración de tu servidor, porque a mí sí me funciona.

De todas formas, ¿para qué quieres saber el navegador?

0voto

steven comentado

nada funciona como debe ser, la documentacion te informa que para funcione la funcion es necesario un archivo el browscap_ini porque no lo trae incluido
entonces he verificado en la carpeta extrar y el archivo si existe pero en la misma nota dice que te descarges otro archivo el php_browscap.ini acabo de bajarmelo y lo he movido a la carpeta extras de php y despues de reiniciar el servidor lo he probado y tampoco funcione a este punto ya no se que mas hacer.
respecto a tu pregunta quiero conocer el navegador para poder optimizar la pagina en base al navegador porque cada uno usa motores distintos y renderizan a su manera. de paso tambien por curiosidad a ver si me detecta con precision
te dejo la nota de la documentacion

Nota:
Para que esto funcione, la configuración de browscap en php.ini debe apuntar a la ubicación correcta del archivo browscap.ini en su sistema.
browscap.ini no está incluido con PHP, pero se pude encontrar un archivo actualizado aquí » php_browscap.ini.
Mientras que browscap.ini contiene información sobre muchos navegadores, recae en el usuario la actualización para mantener la bases de datos vigente. El formato del archivo se explica por sí solo

0voto

magarzon comentado

Si tienes problemas con la configuración, utiliza la función getBrowser que pegaste antes. Básicamente hace lo mismo pero simplificado

0voto

steven comentado

no te preocupes creo que seguira la funcion de antes y tratare de adivinar tanto al dia de hoy se usa mas chrome por lo que si me sale mas voces del motor webkit sabre que se trata de chrome pero si aparece la voz del otro motor entender que es firefox si se tratara de edge aparecerea tambien una voz por lo el problema lo tengo solucionado. lo que no sabria precisar seria solo el sistema ya que si se tratara de windows siempre apareceria el windonws nt con versiones distitnas depende del sistema por lo que si setrata de un numero menor por logica se tratara de versiones de windows viejas.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta