Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: karmany en 7 Enero 2012, 23:53 pm



Título: Saber si javascript está activado
Publicado por: karmany en 7 Enero 2012, 23:53 pm
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


Título: Re: Saber si javascript está activado
Publicado por: madpitbull_99 en 8 Enero 2012, 11:34 am
Podrías mirar en las cabeceras HTTP, aunque no es una opción muy certera.

O con la función get_browser():

Código
  1. $results = get_browser();
  2. if ($results["javascript"] == 1) {
  3. echo "JS Soportado!";
  4. }

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.


Título: Re: Saber si javascript está activado
Publicado por: karmany en 8 Enero 2012, 12:06 pm
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


Título: Re: Saber si javascript está activado
Publicado por: Shell Root en 8 Enero 2012, 18:33 pm
Tal 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?


Título: Re: Saber si javascript está activado
Publicado por: karmany en 8 Enero 2012, 20:07 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.


Título: Re: Saber si javascript está activado
Publicado por: raul338 en 8 Enero 2012, 20:11 pm
Prueba una llamada con AJAX :P


Título: Re: Saber si javascript está activado
Publicado por: ~ Yoya ~ en 8 Enero 2012, 22:51 pm
@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.