Foros del Web » Programando para Internet » PHP »

Redireccionar a una página cuando el mensaje del formulario se ha enviado con éxito

Estas en el tema de Redireccionar a una página cuando el mensaje del formulario se ha enviado con éxito en el foro de PHP en Foros del Web. Buenas, Tengo un inconveniente al querer redireccionar a una página cuando el mensaje se ha enviado con éxito desde un formulario de contacto. Este es ...
  #1 (permalink)  
Antiguo 23/04/2015, 14:10
Avatar de guille_delfino  
Fecha de Ingreso: julio-2014
Ubicación: Buenos Aires, Argentina
Mensajes: 125
Antigüedad: 9 años, 8 meses
Puntos: 4
Exclamación Redireccionar a una página cuando el mensaje del formulario se ha enviado con éxito

Buenas,

Tengo un inconveniente al querer redireccionar a una página cuando el mensaje se ha enviado con éxito desde un formulario de contacto.

Este es el php action:

<?php
#header('Content-Type: text/html; charset=utf-8');
//if posting only
if(isset($_POST['submit'])) {
$return = array('type' => 'error');
$to = '[email protected]';
$name = isset($_POST['name']) ? trim($_POST['name']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$message = isset($_POST['message']) ? trim($_POST['message']) : '';
$phone = isset($_POST['phone']) ? trim($_POST['phone']) : '';
$subject = isset($_POST['subject']) && $_POST['subject'] ? trim($_POST['subject']) : 'Mensaje enviado desde el sitio web';
if($name && $email && $message && filter_var($email, FILTER_VALIDATE_EMAIL)) {
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset="UTF-8"' . "\r\n";
$headers .= "From: {$name} <{$email}>\r\n";
if($phone) {
$message .= ' <br /> Phone: ' . $phone;
}
@$send = mail($to, $subject, $message, $headers);
if($send) {
$return['type'] = 'success';
$return['message'] = 'Su mensaje se ha enviado con éxito.';
} else {
$return['message'] = 'Error al enviar el mensaje.';
}
} else {
$return['message'] = 'Error al validar el mensaje.';
}
die(json_encode($return));
}
?>

Cuando ingreso - header('Location: enviado.html'); - en lugar de el código que esta actualmente, no hay respuesta, al hacer clic en enviar en el formulario, no hace nada.
__________________
Atentamente,

Guillermo Delfino
[email protected]

Última edición por guille_delfino; 23/04/2015 a las 14:11 Razón: Faltó info
  #2 (permalink)  
Antiguo 23/04/2015, 21:23
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Redireccionar a una página cuando el mensaje del formulario se ha enviado

no se puede imprimir nada antes de un:
Código PHP:
Ver original
  1. header('Location: enviado.html');

o sea no podes imprimir nada en pantalla antes de la redireccion, fijate si esto, te está imprimiendo algo:
Código PHP:
Ver original
  1. die(json_encode($return));
  #3 (permalink)  
Antiguo 24/04/2015, 01:35
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Redireccionar a una página cuando el mensaje del formulario se ha enviado

La función die() detiene la ejecución del script, independientemente de lo que imprimas en ella.
  #4 (permalink)  
Antiguo 29/04/2015, 17:43
Avatar de guille_delfino  
Fecha de Ingreso: julio-2014
Ubicación: Buenos Aires, Argentina
Mensajes: 125
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: Redireccionar a una página cuando el mensaje del formulario se ha enviado

Gracias por su ayuda, voy a seguir intentando.
__________________
Atentamente,

Guillermo Delfino
[email protected]

Etiquetas: contacto, formulario, redireccionamiento
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 15:47.