2010-01-10 13 views
35

Estoy utilizando la función get_browser() en un intento de advertir a las personas que su navegador no admite Javascript. En realidad, lo estoy usando para decirles que pueden usar ciertas partes de una aplicación web que estoy creando. Decidí usar Javascript correctamente porque estoy cansado de escuchar a los desarrolladores que tienen miedo de usarlo y he visto un gran potencial en el lenguaje. Estoy divagando, aquí está el error.directiva browscap ini no establecida

browscap directiva ini no establece

Ahora me imagino que esto significa que necesito somthing establece que el php.ini. ¿Alguien puede darme alguna dirección sobre este?

+1

La función de encabezado de página le dirá si el navegador admite Javascript, pero no si lo deshabilitaron. Tienes que decirles de otra manera. –

+0

Esta puede ser la solución que está buscando: http://stackoverflow.com/questions/121203/how-to-detect-if-javascript-is-disabled –

+0

Oh hombre ... personas ** deshabilitar ** javascript (incluso con extensiones como "NoScript"). No se trata de compatibilidad con el navegador, y además, el uso de Javascript para las características principales significa que muchos usuarios con problemas de accesibilidad no podrán usar su sitio web. NO confíe en el agente de usuario olfateando y también lea en mejora progresiva. –

Respuesta

64

No creo que esta es la "mejor" solución para detectar es un navegador es compatible con lo que necesita para su sitio web:

  • en primer lugar, los navegadores pueden mentir - que puede enviar lo parecían quiere como User-Agent
    • E incluso si una versión dada de un soporte debe admitir lo que necesita, Javascript aún se puede deshabilitar.
  • En segundo lugar, hay una forma más "adecuada" de detectar lo que un navegador puede hacer o no, cuando se trata de Javascript.

Para el segundo punto, debe probar si el navegador realmente admite lo que necesita y no depender de una lista como la de browscap.


Sin embargo, para responder a su pregunta sobre browscap: hay una nota en la parte inferior de la página del manual para get_browser que dice (citando):

Nota: Para que esto para trabajar, su configuración browscap configuración en php.ini debe apuntar a la ubicación correcta del archivo browscap.ini en su sistema. browscap.ini es no incluido con PHP, pero puede encontrar un archivo actualizado » php_browscap.ini aquí.
Mientras que browscap.ini contiene información en muchos navegadores, se basa en las actualizaciones de los usuarios para mantener actualizada la base de datos . El formato del archivo es bastante autoexplicativo.

Por lo tanto, usted tiene que:

  • descargar el archivo browscap,
  • y establecer la directiva browscap en su archivo php.ini, por lo que apunta al archivo que ha descargado.
+2

¿Y si no puedo acceder a mi archivo php.ini, por ejemplo, estoy en un servidor web? ¿Cómo puedo configurar la ubicación de browsercap usando ini_set()? – MakuraYami

+3

browscap está marcado como PHP_INI_SYSTEM por lo que no se puede cambiar utilizando ini_set o mediante htaccess. – Beniston

+0

¿Puede explicar el mejor método para detectar navegadores? Cualquier puntero es apreciado. . . – palerdot

17

Sé que este tema es viejo, pero se puede usar algo como:

<noscript>JavaScript must be enabled</noscript> 

que se mostrará si JavaScript no está activado.

+1

No tengo idea de eso, gracias –

2

Puede comprobar el navegador utilizando la clase Browser descargarlo desde Github

configuración

 include(/your-path/Browser.php); 
$browser = new Browser(); 
    if($browser->getBrowser() == Browser::BROWSER_IE && $browser->getVersion() >= 8) 
     { 
      echo "Your browser is Internet explorer version 8";                                  
    } 
0

Hay un fallo en PHP que también puede dar lugar a este error cuando el verdadero problema es que el servidor web no puede leer el archivo browscap (por ejemplo, si es propiedad de root en lugar de www-data). Consulte https://bugs.php.net/bug.php?id=74501

Cuestiones relacionadas