Foros del Web » Programando para Internet » PHP »

Intento redireccionar con Header

Estas en el tema de Intento redireccionar con Header en el foro de PHP en Foros del Web. Hola, tengo un formulario con Php que despues de mandar la información sale debajo del formulario un mensaje de aprovación ( http://www.andesperu.com/feedback/feedback2.php ) Bueno lo ...
  #1 (permalink)  
Antiguo 17/07/2009, 16:44
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Intento redireccionar con Header

Hola, tengo un formulario con Php que despues de mandar la información sale debajo del formulario un mensaje de aprovación (http://www.andesperu.com/feedback/feedback2.php)

Bueno lo que deseo en realidad es que despues del envio redireccione a otra pagina por eso he puesto una palabra reservada header pero no me sale el redireccionamiento, alguna sugerencia. Muchas gracias

Cita:
<?
$email_recipient = '[email protected];[email protected]'; // Write here your email. On that address you'll receive emails from feedback form

session_start();
error_reporting(0);
include("class/captchaZDR.php");

$capt = new captchaZDR;
$wrong_captcha = '';

if(isset($_REQUEST['Submit']) and $capt->check_result()){
$message_send = "
Mensaje desde la página
\n\n
Nombre: ".$_REQUEST['nombre']." \n
E-mail: ".$_REQUEST['correo']." \n
Comentario: ".$_REQUEST['message']." \n
Pagina: ".$_REQUEST['pagina']." \n

";

$headers .= 'To: <'.$email_recipient.'>' . "\r\n";
$headers .= 'From: '.$_REQUEST['nombre'].' <'.$_REQUEST['correo'].'>' . "\r\n";


if(mail($email_recipient, 'SOLICITUD DE INFORMACION ANDES PERU '.$_REQUEST['pagina'], $message_send, $headers))
echo '<div style="color: green"><strong>Gracias por tu comentario</strong></div>';
/*header ("Location: http://www.andesperu.com/feedback/gracias.html"); *///Aqui deseo que se haga la redireción
else echo '<div style="color: red"><strong>Hubo un problema en el envío del mensaje. Por favor, inténtelo de nuevo. Gracias.</strong></div>';
}
else
{

if(isset($_REQUEST['Submit']) and (!$capt->check_result()) ) echo '<div style="color: red"><strong>Equivocación de entrada. Por favor, inténtelo de nuevo. Actualizar:</strong> <a href="#" onclick="write_captcha();"><img src="images/refresh.gif" border="0" alt="" /></a></div>';

}


?>
  #2 (permalink)  
Antiguo 17/07/2009, 16:45
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Respuesta: Intento redireccionar con Header

Mira hay un echo antes del header ese es el problema :

Código PHP:
<?
$email_recipient 
'[email protected];[email protected]'// Write here your email. On that address you'll receive emails from feedback form

session_start();
error_reporting(0);
include(
"class/captchaZDR.php");

$capt = new captchaZDR;
$wrong_captcha '';

if(isset(
$_REQUEST['Submit']) and $capt->check_result()){
$message_send "
Mensaje desde la página
\n\n
Nombre: "
.$_REQUEST['nombre']." \n
E-mail: "
.$_REQUEST['correo']." \n
Comentario: "
.$_REQUEST['message']." \n
Pagina: "
.$_REQUEST['pagina']." \n

"
;

$headers .= 'To: <'.$email_recipient.'>' "\r\n";
$headers .= 'From: '.$_REQUEST['nombre'].' <'.$_REQUEST['correo'].'>' "\r\n";


if(
mail($email_recipient'SOLICITUD DE INFORMACION ANDES PERU '.$_REQUEST['pagina'], $message_send$headers))
echo 
'<div style="color: green"><strong>Gracias por tu comentario</strong></div>';
/*header ("Location: http://www.andesperu.com/feedback/gracias.html"); *///Aqui deseo que se haga la redireción
else echo '<div style="color: red"><strong>Hubo un problema en el envío del mensaje. Por favor, inténtelo de nuevo. Gracias.</strong></div>';
}
else
{

if(isset(
$_REQUEST['Submit']) and (!$capt->check_result()) ) echo '<div style="color: red"><strong>Equivocación de entrada. Por favor, inténtelo de nuevo. Actualizar:</strong> <a href="#" onclick="write_captcha();"><img src="images/refresh.gif" border="0" alt="" /></a></div>';

}


?>
  #3 (permalink)  
Antiguo 17/07/2009, 16:49
Avatar de SirGalbraith  
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Intento redireccionar con Header

Debajo del header() hay un else al que no le has abierto llave, puede que el problema esté ahí

Salu2!!!
  #4 (permalink)  
Antiguo 17/07/2009, 23:58
 
Fecha de Ingreso: mayo-2009
Ubicación: Colombia
Mensajes: 21
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Intento redireccionar con Header

Reemplaza el header por
Cita:
print "<meta http-equiv = refresh content =\"2; url=destino.php\">";
Tú codigo quedaria así;
Código nuevo:
Ver original
  1. <?
  2. $email_recipient = '[email protected];[email protected]'; // Write here your email. On that address you'll receive emails from feedback form
  3.  
  4. session_start();
  5. error_reporting(0);
  6. include("class/captchaZDR.php");
  7.  
  8. $capt = new captchaZDR;
  9. $wrong_captcha = '';
  10.  
  11. if(isset($_REQUEST['Submit']) and $capt->check_result()){
  12. $message_send = "
  13. Mensaje desde la página
  14. \n\n
  15. Nombre: ".$_REQUEST['nombre']." \n
  16. E-mail: ".$_REQUEST['correo']." \n
  17. Comentario: ".$_REQUEST['message']." \n
  18. Pagina: ".$_REQUEST['pagina']." \n
  19.  
  20. ";
  21.  
  22. $headers .= 'To: <'.$email_recipient.'>' . "\r\n";
  23. $headers .= 'From: '.$_REQUEST['nombre'].' <'.$_REQUEST['correo'].'>' . "\r\n";
  24.  
  25.  
  26. if(mail($email_recipient, 'SOLICITUD DE INFORMACION ANDES PERU '.$_REQUEST['pagina'], $message_send, $headers))
  27. echo '<div style="color: green"><strong>Gracias por tu comentario</strong></div>';
  28. /*print "<meta http-equiv = refresh content =\"2; url=destino.php\">"; *///Aqui deseo que se haga la redireción
  29. else echo '<div style="color: red"><strong>Hubo un problema en el envío del mensaje. Por favor, inténtelo de nuevo. Gracias.</strong></div>';
  30. }
  31. else
  32. {
  33.  
  34. if(isset($_REQUEST['Submit']) and (!$capt->check_result()) ) echo '<div style="color: red"><strong>Equivocación de entrada. Por favor, inténtelo de nuevo. Actualizar:</strong> <a href="#" onclick="write_captcha();"><img src="images/refresh.gif" border="0" alt="" /></a></div>';
  35.  
  36. }
  37.  
  38.  
  39. ?>

Espero te sirva de algo!!
  #5 (permalink)  
Antiguo 18/07/2009, 09:47
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Intento redireccionar con Header

Hola Jdarkname disculpa con el print no me fue bien, pero saque el echo que hiba antes del header y se me muestra la pagina que dice gracias abajo pero no se redirecciona, alguna otra sugerencia, muchas gracias

Asi queda mi código, y no hay problema con el cierre del else
Cita:
<?
$email_recipient = '[email protected];[email protected]';

session_start();
error_reporting(0);
include("class/captchaZDR.php");

$capt = new captchaZDR;
$wrong_captcha = '';

if(isset($_REQUEST['Submit']) and $capt->check_result()){
$message_send = "Mensaje desde la página\n\n
Nombre: ".$_REQUEST['nombre']." \n
E-mail: ".$_REQUEST['correo']." \n
Comentario: ".$_REQUEST['message']." \n
Pagina: ".$_REQUEST['pagina']." \n";

$headers .= 'To: <'.$email_recipient.'>' . "\r\n";
$headers .= 'From: '.$_REQUEST['nombre'].' <'.$_REQUEST['correo'].'>' . "\r\n";

if(mail($email_recipient, 'SOLICITUD DE INFORMACION ANDES PERU '.$_REQUEST['pagina'], $message_send, $headers))
header ("Location: http://www.andesperu.com/feedback/gracias.php");
else
echo '<div style="color: red"><strong>Hubo un problema en el envío del mensaje. Por favor, inténtelo de nuevo. Gracias.</strong></div>';
}

else{if(isset($_REQUEST['Submit']) and (!$capt->check_result()) )
echo '<div style="color: red"><b>Equivocación de entrada. Por favor, inténtelo de nuevo. Actualizar:</b><a href="#" onclick="write_captcha();"><img src="images/refresh.gif" border="0" alt="" /></a></div>';
}
?>

Última edición por salvador86; 18/07/2009 a las 10:26 Razón: editar
  #6 (permalink)  
Antiguo 18/07/2009, 10:58
Avatar de thesixhalcon  
Fecha de Ingreso: noviembre-2007
Ubicación: Madrid (España)
Mensajes: 55
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Intento redireccionar con Header

Salvador, verás, la funcion header(), sirve para modificar las cabeceras de la página. En las cabeceras de la página puede venir diversa información, como que el documento puede ser texto, una imagen png, una imagen gif o simplemente la longitud del documento.
Al imprimir el texto, sin antes enviar cabeceras, automáticamente ese documento pasa a ser de texto, por lo que al enviar las cabeceras, una vez escrito algun texto, dará error.
Aún si modificas el codigo, poniendo la función header() al principio del codigo, el resto del código (creo, corrijanme si me equivoco) no se ejecutaría.
La solución está en redirigirlo mediante HTML. Como bien te dio la solución jdarkname, consiste en introducir el siguiente código:
Donde el "2", pon los segundos que quieres esperar para redireccionar al cliente y donde "destino.php" la página a la que quieres enviar al usuario.
Cita:
Iniciado por jdarkname Ver Mensaje
Código HTML:
<meta http-equiv = refresh content ="2; url=destino.php"> 
Un saludo
__________________
Respondo a MP, si de verdad es necesario. No pidas que te den el código hecho, pide el método y aprende de él.
lowsession.com - ¡La noche es tuya!
  #7 (permalink)  
Antiguo 18/07/2009, 11:40
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Intento redireccionar con Header

Justo yo tengo otro formulario en php que se redirecciona con este metatag de html, pero cuando ahora lo pongo en este php de envio, simplemente se envia el mensaje pero no se redirecciona, y por otra parte usando el header la página a la que se debe redireccionar se muestra abajo del formulario, no se redirecciona. POr eso pido sugerencias si hay otra manera, gracias
  #8 (permalink)  
Antiguo 18/07/2009, 12:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Intento redireccionar con Header

El problema es que estas enviando texto, y por eso no puedes redireccionar, vas a tener que usar Javascript para redireccionar después de mostrar el mensaje.

Saludos.
  #9 (permalink)  
Antiguo 18/07/2009, 14:15
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 8 meses
Puntos: 15
De acuerdo Respuesta: Intento redireccionar con Header

Espero haberte ayudado con tu duda, si necesitas algo mas no dudes en consultarlo.

Código PHP:
<?
$email_recipient 
'[email protected];[email protected]'// Write here your email. On that address you'll receive emails from feedback form

session_start();
error_reporting(0);
include(
"class/captchaZDR.php");

$capt = new captchaZDR;
$wrong_captcha '';

if(isset(
$_REQUEST['Submit']) and $capt->check_result()){
$message_send "
Mensaje desde la página
\n\n
Nombre: "
.$_REQUEST['nombre']." \n
E-mail: "
.$_REQUEST['correo']." \n
Comentario: "
.$_REQUEST['message']." \n
Pagina: "
.$_REQUEST['pagina']." \n

"
;

$headers .= 'To: <'.$email_recipient.'>' "\r\n";
$headers .= 'From: '.$_REQUEST['nombre'].' <'.$_REQUEST['correo'].'>' "\r\n";


if(
mail($email_recipient'SOLICITUD DE INFORMACION ANDES PERU '.$_REQUEST['pagina'], $message_send$headers))
{
echo 
'<div style="color: green"><strong>Gracias por tu comentario</strong></div>';
//Opcion uno dejar el siguiente codigo aqui: header("location: index.php"); donde puse index pues pones la pagina que deseas

/*opcion dos la que dice GatorV tambien es muy valedera es el siguietne codigo y debe ir asi: echo '<script>location.href="pagina"</script>'; y listo ahi tienes tu redireccion. espero haberte ayudado */
}
else { echo 
'<div style="color: red"><strong>Hubo un problema en el envío del mensaje. Por favor, inténtelo de nuevo. Gracias.</strong></div>';
}
else
{

if(isset(
$_REQUEST['Submit']) and (!$capt->check_result()) ) echo '<div style="color: red"><strong>Equivocación de entrada. Por favor, inténtelo de nuevo. Actualizar:</strong> <a href="#" onclick="write_captcha();"><img src="images/refresh.gif" border="0" alt="" /></a></div>';

}


?>
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.