Foros del Web » Programando para Internet » PHP »

PHP no redirecciona

Estas en el tema de PHP no redirecciona en el foro de PHP en Foros del Web. Hola a todos Tengo el siguiente código php, sencillo, para que redireccione a una web una vez enviado correctamente el formulario, pero la cosa es ...
  #1 (permalink)  
Antiguo 08/10/2013, 13:56
Avatar de albertocar  
Fecha de Ingreso: agosto-2010
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 1
PHP no redirecciona

Hola a todos

Tengo el siguiente código php, sencillo, para que redireccione a una web una vez enviado correctamente el formulario, pero la cosa es que no funciona y ya no se dónde mirar para ver qué pasa. Alguien me puede ayudar? Gracias


<?php

if(isset($_POST["remitente"]) && !empty($_POST["remitente"]) &&
isset($_POST["mensaje"]) && !empty($_POST["mensaje"]))
{
$nombre=$_POST["nombre"];
$email = $_POST["remitente"];
$mensaje=$_POST["mensaje"];
$destino="[email protected]";
$titulo= "Suscribirse";
$desde="From:" .$_POST["remitente"];
$msjCorreo="Nombre: $nombre\n Email: $email\n Asunto: $titulo\n Mensaje:\n\n $mensaje";
mail ($destino,$titulo,$msjCorreo,$desde);


header ("location: confirmacionsuscripcion.html");

}
else
{

header ("location: error_mail.html");
}
?>
  #2 (permalink)  
Antiguo 08/10/2013, 13:59
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: PHP no redirecciona

¿te sale algún error?: si no usar error_reporting(E_ALL); o activa todos los errores en el php.ini

si estás usando AJAX, recuerda que el XHR no lee dicho encabezado, tendrás que redireccionar con JS.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 08/10/2013, 14:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: PHP no redirecciona

¿Y qué estás haciendo para depurar?

Porque a simple vista es correcta la instrucción, pero si no te funciona debe ser por algo que no vemos, y desde luego tampoco vamos a adivinar.

¿Recibes algún mensaje de error?

¿Si en lugar de usar header() imprimes algo se ve?

Por favor, comparte más información, que así de pronto no vemos nada mal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 09/10/2013, 05:27
Avatar de albertocar  
Fecha de Ingreso: agosto-2010
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: PHP no redirecciona

Hola de nuevo

Gracias a todos por vuestras respuestas, y perdón si fui un poco corto de información; voy a intentar explicar algo más.

Para que veáis qué pasa exactamente, podéis ir a la web en cuestión (www.ilaminaria.com/suscribir.html) y completar el formulario para suscribirse, aunque me ocurre en lo tres formularios que tiene la web. Al darle al botón para enviar los datos, en vez de redireccionarte para confirmarte el envío, lo que hace es intentar mostrar el archivo php, por lo que la página aparece en blanco, y en la dirección aparece el nombre del archivo php.

Yo también pensé que era un problema de no interpretar bien el php, e hice una prueba poniendo un echo "Hola" dentro del php del formulario de contacto a ver si lo mostraba y sí lo muestra, por lo que entiendo que la interpretación la hace correctamente.

Si mandas el formulario sin nada, dándole directamente a enviar, tampoco te dice que hay un error ni nada. Lo más raro de todo es que este mismo código lo uso en otra web, alojada dentro del mismo servidor, y funciona perfectamente.

Dejo aquí el código completo del php a ver si es que hay algo que no veo, porque ya es que no se de qué manera arreglar esta cosa. Gracias a todos por la ayuda.



<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>enviar2</title>
</head>

<body>

<?php

if(isset($_POST["remitente"]) && !empty($_POST["remitente"]) &&
isset($_POST["mensaje"]) && !empty($_POST["mensaje"]))
{
$nombre=$_POST["nombre"];
$email = $_POST["remitente"];
$mensaje=$_POST["mensaje"];
$destino="[email protected]";
$titulo= "Suscribirse";
$desde="From:" .$_POST["remitente"];
$msjCorreo="Nombre: $nombre\n Email: $email\n Asunto: $titulo\n Mensaje:\n\n $mensaje";
mail ($destino,$titulo,$msjCorreo,$desde);

//echo "hola";
header ("location: http://www.ilaminaria.com/confirmacionsuscripcion.html");

}
else
{

header ("location: error_mail.html");
}
?>


</body>
</html>
  #5 (permalink)  
Antiguo 09/10/2013, 06:44
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: PHP no redirecciona

No puedes enviar nada de contenido antes de usar header(), tú estas poniendo mucho código HTML, es por eso que header no funciona más.

Quita todo el código HTML de tu archivo y deja solo el código PHP.

Saludos.
  #6 (permalink)  
Antiguo 11/10/2013, 05:46
Avatar de albertocar  
Fecha de Ingreso: agosto-2010
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: PHP no redirecciona

Hola a todos

GatorV, si, sabía que si ponía algo antes del header no redireccionaba. Lo hice así para comprobar si entraba y ejecutaba bien el php. Luego lo estuve probando de otras maneras.

Finalmente conseguí solucionar el problema, pero fue con esas cosas mágicas de la informática que no se cómo ni qué pasaba. Borré los archivos php y los hice de nuevo, con el mismo código y todo es más, copié y pegué, los volví a subir al servidor y funcionó. No se, habría algo ahí que estaba interfiriendo y por eso no funcionaba.

Bueno, muchísimas gracias por todo, saludos.

Etiquetas: formulario, html
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 20:09.