Ir al contenido


Foto

Flujo del script en PHP


  • Por favor identifícate para responder
2 respuestas en este tema

#1 cannabis

cannabis

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 257 mensajes
  • LocationMéxico

Escrito 26 marzo 2010 - 02:00

Tengo este script (el script fue creado automáticamente por ContactForm, aplicación que me proporciona mi proveedor de hospedaje)

Hago la aclaración que conozco tanto de Php como de finlandés.



php
  1. <?php
  2. // VALUES FROM THE FORM
  3. $name = $_POST['name'];
  4. $email = $_POST['email'];
  5. $message = $_POST['msg'];
  6.  
  7. // ERROR & SECURITY CHECKS
  8. if ( ( !$email ) ||
  9. ( strlen($_POST['email']) > 200 ) ||
  10.     ( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
  11.       )
  12. {
  13.                 [color=blue]header("location: EmailIncorrecto.php");[/color]
  14. // [color=red]print "Error: Invalid E-Mail Address"; [/color]
  15. exit;
  16. }
  17. if ( ( !$name ) ||
  18. ( strlen($name) > 100 ) ||
  19. ( preg_match("/[:=@\<\>]/", $name) )
  20.   )
  21. {
  22.                 header("location: EmailIncorrecto.php");
  23. // print "Error: Invalid Name";
  24. exit;
  25. }
  26. if ( preg_match("#cc:#i", $message, $matches) )
  27. {
  28.                 header("location: EmailIncorrecto.php");
  29. // print "Error: Found Invalid Header Field";
  30. exit;
  31. }
  32. if ( !$message )
  33. {
  34.                 header("location: EmailIncorrecto.php");
  35. // print "Error: No Message";
  36. exit;
  37. }
  38. if (eregi("\r",$email) || eregi("\n",$email)){
  39.                 header("location: EmailIncorrecto.php");
  40. // print "Error: Invalid E-Mail Address";
  41. exit;
  42. }
  43. if (FALSE) {
  44.                 header("location: EmailIncorrecto.php");
  45. // print "Error: You cannot send to an email address on the same //domain.";
  46. exit;
  47. }
  48.  
  49.  
  50. // CREATE THE EMAIL
  51. $headers = "Content-Type: text/plain; charset=iso-8859-1\n";
  52. $headers .= "From: $name <$email>\n";
  53. $recipient = "bazkatu@gmail.com";
  54. $subject = "Contacto desde fikse.com.mx";
  55. $message = wordwrap($message, 1024);
  56.  
  57. // SEND THE EMAIL TO YOU
  58. mail($recipient, $subject, $message, $headers);
  59.  
  60. // REDIRECT TO THE THANKS PAGE
  61.         [color=blue]header("location: EmailCorrecto.php");[/color]
  62. // [color=red]header("location: thanks.php");[/color]
  63. ?>



Lo marcado con rojo era el original, lo marcado con azul es lo que añadí.

Cuando ejecuta EmailCorrecto.php o EmailIncorrecto.php, aparece una ventana con un mensaje avisando si el envío fue o no correcto. El usuario pulsa clic para cerrarla.

El problema que tengo es que al hacer clic el usuario, aparece una ventana en blanco y se tiene que hacer clic en el botón Ir a la página anterior para regresar a la ventana origina de Formulario de Contacto.

Lo que quiero es que cuando el usuario haga clic para cerrar la ventana de aviso, se cierre esta ventana y se dirija a la ventana que le especifique.

¿Alguna sugerencia?


Salud.

  • 0

#2 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderadores
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 27 marzo 2010 - 11:01

Hola cannabis

Según lo que entiendo, después de enviar el correo si todo fue correcto el script te redirecciona a la página EmailCorrecto.php y si algo sale mal se dirige a EmailIncorrecto.php.

Lo que quiero es que cuando el usuario haga clic para cerrar la ventana de aviso, se cierre esta ventana y se dirija a la ventana que le especifique.


Como se está utilizando header("location: EmailIncorrecto.php"); el redireccionamiento lo hace directamente PHP y deberías quedar en la misma ventana del navegador, entonces no aplica cerrar la ventana puesto que no se trata de una ventana emergente o popup sino que quedas en la ventana principal. Más bien creo que todo se resuelve colocando algún enlace en las páginas de aviso.

Es necesario que nos muestres el código de estos dos scripts (EmailCorrecto.php y EmailIncorrecto.php) puesto que en ellos habrá de hacerse el cambio que requieres.

Saludos
  • 0

#3 cannabis

cannabis

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 257 mensajes
  • LocationMéxico

Escrito 04 abril 2010 - 08:31

Pido disculpas amigo Héctor por la tardanza en contestar.

Solucioné el problema como recomendaste: revisar el código en EmailIncorrecto.html y en EmailCorrecto.html


Salud.

  • 0




IP.Board spam blocked by CleanTalk.