Saber si javascript está activado

Iniciado por karmany, 7 Enero 2012, 23:53 PM

0 Miembros y 1 Visitante están viendo este tema.

karmany

Hola!

He buscado en muchos sitios en la red y no encuentro una forma adecuada de saber desde PHP,  si un navegador tiene activado javascript (que no instalado).

¿Alguien conoce alguna forma adecuada?

PD. A ver si es posible solo desde PHP, no ejecutando algo directamente desde javascript.

Gracias

madpitbull_99

Podrías mirar en las cabeceras HTTP, aunque no es una opción muy certera.

O con la función get_browser():

Código (php) [Seleccionar]
$results = get_browser();
if ($results["javascript"] == 1) {
echo "JS Soportado!";
}


El código de arriba sólo detecta si el navegador soporta JS, no si está activado.

La respuesta corta, es que en principio no puedes hacerlo sólo con PHP (está estrictamente ligado al server-side), lo que podrías hacer:

- Crear una cookie con JS.
- Comprobar desde PHP si esa cookie existe, si existe, es que JS está activado.

O la opción más sencilla, hacerlo todo con javascript xD.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

karmany

Agradezco tu respuesta madpitbull_99.
La verdad que he buscado mucho.

Tal vez la solución sea desde PHP llamar a una función de javascript y verificar el resultado.
Gracias

Shell Root

Cita de: karmany en  8 Enero 2012, 12:06 PMTal vez la solución sea desde PHP llamar a una función de javascript y verificar el resultado.
No sería lo mismo que hacerla directamente desde JS?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

karmany

Cita de: Shell Root en  8 Enero 2012, 18:33 PM
No sería lo mismo que hacerla directamente desde JS?

No porque por ejemplo y para entenderlo tengo un botón.
PHP lo muestra en pantalla y javascript ejecuta el código al pulsar el botón. Si un usuario tiene desactivado javascript, PHP sigue mostrando el botón aunque no haga nada.

madpitbull_99 me ha dado una idea y voy a llamar desde PHP a una simple función en javascript (un simple echo) y dependiendo del resultado estará o no activado javascript.

raul338


~ Yoya ~

@madpitbull_99, la idea de la cookie es buena, incluso yo estaba pensando lo mismo pero si la analiza bien, no es muy buena idea. Ya que en la peticiones puedes mandar la cookie que verifica si el navegador soporta javascript, ese seria el bypass.

De todas las soluciones, yo creo que la mejor es la que plantea @madpitbull_99, la de la funcion get_browser(). Pero igual se puede hacer el bypass, ya que la información la obtiene mediante los datos que envia el navegador al cliente. Yo pienso que cualquier verificación de existencia de javascript, se le podría hacer un bypass, simplemente porque javascript se ejecuta del lado del cliente y mediante PHP puedes similar exactamente cualquier cosa que realiza el navegador.

Igual si es para comprobar si el usuario tiene javascript activado, para usar codigo javascript, la mejor opcion es usar get_browser(), así evita complicaciones, haces todo desde php, evitas combinar PHP e javascript y obtiene un mejor performance XD.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.