Error al redireccionar a una pagina en un formaulario con PHP
Redireccionar a una pagina determinada despues de rellenar un formulario.
Buenas a todos, recientemente he trasladado mi web a un nuevo hosting (el que tenía era gratis y cada dos por tres caía) y en el nuevo me he dado cuenta que me da problemas a la hora de redireccionar a la página de contacto después de enviar el formulario.
Asta ahora todo iba bien pero ahora la página se queda en blanco, cuando lo que quiero es que se quede en la misma de contacto.
en el Log_error me sale el siguiente mensaje.
PHP Warning: Cannot modify header information - headers already sent by (output started at /home/user/public_html/contacto.php:9) in /home/user/public_html/contacto.php on line 20
Código:
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>contacto</title>
</head>
<body>
<?php
$nombre = $_GET ['nombre'];
$email = $_GET ['email'];
$mensaje = $_GET ['mensaje'];
$para = "info@vandenilustrador.com";
$subject = "Formulario vandenilustrador";
$encabezados = "from: $nombre <$email>";
$respuesta = mail($para, $subject, $mensaje, $encabezados);
if ($respuesta == true)
{
header( "Location: http://www.vandenilustrador.com/contacto.html");
}
else
{
echo 'Hubo un problema en el envío del mensaje';
}
?>
</body>
</html>
Gracias por su atención.
feliper
Hola @Vanden,
el error te dice que con el código HTML del principio ya estás mandando los Headers de la página, y no puedes redireccionar porque redireccionar es volver a cambiar los Headers ...
solo tienes que poner todo el HTML dentro del ELSE del condicional, si lo pinesas, en el caso de que vayas a redireccionar todo ese HTML no es necesario ...
saludos !!
<?php
$nombre = $_GET ['nombre'];
$email = $_GET ['email'];
$mensaje = $_GET ['mensaje'];
$para = "info@vandenilustrador.com";
$subject = "Formulario vandenilustrador";
$encabezados = "from: $nombre <$email>";
$respuesta = mail($para, $subject, $mensaje, $encabezados);
if ($respuesta == true)
{
header( "Location: http://www.vandenilustrador.com/contacto.html");
}
else
{
?>
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>contacto</title>
</head>
<body>
<?php
echo 'Hubo un problema en el envío del mensaje';
?>
</body>
</html>
<?php
}
?>
Vanden
Ok, muchas gracias, me sirvió.