elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] Invocar JS desde PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Invocar JS desde PHP  (Leído 306 veces)
danny920825

Desconectado Desconectado

Mensajes: 149


Ver Perfil WWW
[Resuelto] Invocar JS desde PHP
« en: 26 Abril 2017, 21:28 »

Hola a todos. No se si el titulo era explicativo, pero lo que quiero hacer es ejecutar un código JS, específicamente un alert desde PHP. Cuando lo hago solo me funciona, pero lo que quiero es hacer una alerta y que redireccione al usuario. Como conozco poco casi nada de JS, lo que estoy haciendo es lo siguiente:
Código
  1. if(!pi=3.14) //Solo un ejemplo
  2. {
  3.  echo "<script>alert('Los datos no coinciden');</script>";
  4.  header("location:direccion.php");
  5. }
  6.  
y lo que hace es que redirecciona directo, no muestra el alert. ¿Como puedo hacer para que eso funcione?


« Última modificación: 26 Abril 2017, 21:49 por danny920825 » En línea

"Los que reniegan de Dios es por desesperación de no encontrarlo".
   Miguel de Unamuno
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 4.542



Ver Perfil WWW
Re: [Ayuda] Invocar JS desde PHP
« Respuesta #1 en: 26 Abril 2017, 21:35 »

Tienes que hacerlo desde JS todo o mostrar la alerta en la otra pagina. Las cabeceras (header()) se ejecutan antes que cualquier otra cosa. Es una regla estricta que de hecho estas rompiendo al imprimir un echo antes.

Entonces tendrás que hacer algo tipo esto:

Código
  1. if(!pi=3.14){
  2.    die('<script> alert("Los datos no coinciden"); window.location = "direccion.php"; </script>');
  3. }

Por ejemplo.

Saludos


En línea

danny920825

Desconectado Desconectado

Mensajes: 149


Ver Perfil WWW
Re: [Ayuda] Invocar JS desde PHP
« Respuesta #2 en: 26 Abril 2017, 21:40 »

Gracias!! De veras que eso ayuda mucho con la validación de los formularios. Uso
Código
  1. header("location:")
porque no conozco otra forma de redireccionar desde PHP. Si existiera alguna otra forma, estoy dispuesto a usarla, ya que supongo que el nombre indica que es lo primero que se debe mandar en una página. Que el hecho de que se pueda usar no significa que sea la forma correcta de hacerlo, pero no conozco otra :( (Ahora conozco la de JS, pero estuve buscando una de PHP y no encontre)
En línea

"Los que reniegan de Dios es por desesperación de no encontrarlo".
   Miguel de Unamuno
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 4.542



Ver Perfil WWW
Re: [Ayuda] Invocar JS desde PHP
« Respuesta #3 en: 26 Abril 2017, 21:43 »

No vas a encontrar nada. El caso es que PHP se ejecuta antes de que incluso el navegador presente el html. Ten en cuenta que PHP es un backend, esta pensado para ejecutar lógica en el servidor y no presentarse al usuario.

Yo te recomendaría hacerte una validación javascript y luego mostrar errores en PHP (si la validación en PHP falla) con un enlace para volver.. o eso o lo que comente de mostrar los errores en la pagina a la que redireccionas.

Saludos
En línea

danny920825

Desconectado Desconectado

Mensajes: 149


Ver Perfil WWW
Re: [Ayuda] Invocar JS desde PHP
« Respuesta #4 en: 26 Abril 2017, 21:45 »

Lo otro que he estado haciendo es crear una sesion de esta forma:
Código
  1. $_SESSION['error_validar'] = "El nombre contiene caracteres incorrectos";
  2.  
y ahora con el código que me diste, redirecciono a la página del formulario y alli muestro en un span el contenido de esa variable.
En línea

"Los que reniegan de Dios es por desesperación de no encontrarlo".
   Miguel de Unamuno
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 4.542



Ver Perfil WWW
Re: [Ayuda] Invocar JS desde PHP
« Respuesta #5 en: 26 Abril 2017, 21:47 »

Perfectamente valido.

Saludos
En línea

danny920825

Desconectado Desconectado

Mensajes: 149


Ver Perfil WWW
Re: [Resuelto] Invocar JS desde PHP
« Respuesta #6 en: 26 Abril 2017, 21:49 »

Perfecto. Entonces Muchas Gracias y Tema Cerrado si quieres
En línea

"Los que reniegan de Dios es por desesperación de no encontrarlo".
   Miguel de Unamuno
animanegra

Desconectado Desconectado

Mensajes: 34



Ver Perfil
Re: [Ayuda] Invocar JS desde PHP
« Respuesta #7 en: 26 Abril 2017, 21:54 »

A ver, para validar datos de entrada hazlo desde javascript en la pagina antes de enviar el formulario. Validarlos en el php para presentarle el error al usuario es obligar al usuario a hacer mas peticiones al servidor para hacer lo mismo. Mas recursos a tener en el servidor que de forma general ante errores de usuario tiene que procesar y validar y mas tiempo de espera del usuario que no puede tener la retroalimentacion del error al momento.

Por otro lado, en el servidor tienes que hacer la verificacion de las entradas para evitar ataques, y si ves algo raro sacar al usuario de alli y evitar que la entrada erronea llegue a buen puerto.

Pero primero ten claro algo, el javascript se procesa en el cliente y el php en el servidor. De modo que el php generará toda la pagina entera y despues el cliente ejecutará la pagina con el javascript que pongas en ella. Yo me repasaría un poco el funcionamiento de los servidores web y su procesado. Y vovlería a mirar las diferencias entre procesado en cliente y en servidor. Si no tienes claro como el agua eso terminaras teniendo problemas.

Saludos.
En línea

42
danny920825

Desconectado Desconectado

Mensajes: 149


Ver Perfil WWW
Re: [Resuelto] Invocar JS desde PHP
« Respuesta #8 en: 26 Abril 2017, 22:04 »

Si, eso lo entiendo y se que el primer paso en la validacion se hace en JS para que el usuario no necesite enviar los datos al servidor, pero de igual forma tengo que validar los datos en el servidor, porque el usuario puede deshabilitar en JS en el navegador y así saltarse la validación. Prefiero validar en ambos lados, aunque realmente la validacion en JS no la se hacer. Y no solo para no hacer peticiones innecesarias. Se debe hacer en JS para evitar que el usuario tenga que escribir nuevamente los datos. Eso es molesto y lo digo por experiencia
En línea

"Los que reniegan de Dios es por desesperación de no encontrarlo".
   Miguel de Unamuno
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] invocar metodo desde metodo.
Scripting
Hesp 2 3,883 Último mensaje 8 Marzo 2009, 00:38
por Hesp
Desde excel se puede invocar un web service y llamarlo desde VB
Programación Visual Basic
olve 0 2,719 Último mensaje 28 Enero 2010, 17:04
por olve
bootear win 7 desde usb (resuelto)
Windows
mavazero 1 955 Último mensaje 9 Agosto 2010, 13:09
por Randomize
Invocar metodo javascript desde Applet
Java
mapers 0 424 Último mensaje 5 Septiembre 2013, 23:22
por mapers
Invocar metodos desde switch
Java
Finishim 6 1,520 Último mensaje 30 Abril 2015, 20:49
por PabloPbl
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines