Enviar a visitante a thank you page despues de completar formulario

  • Autor Autor gringofer
  • Fecha de inicio Fecha de inicio
G

gringofer

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola buenos dias,

Quiero que mis visitantes, luego de completar y enviar el formulario, sean enviados a la thank you page, para eso intente lo siguiente:

Insertar CODE, HTML o PHP:
if($mail->Send()){
            //Header("Location: ./gracias/index.html");
            echo '{ "alert": "success", "message": "' . $message_success . '" }';
        }else{
            echo '{ "alert": "error", "message": El correo electrónico <strong> no se pudo enviar </strong> debido a algún error inesperado. Vuelva a intentarlo más tarde.<br /><br /><strong>Razón:</strong><br />' . $mail->ErrorInfo . '" }';
        }
    } else {
        die();

Donde en el if compruebo si el mail fue enviado, en caso de ser verdadero, probe con Header("Location: ./gracias/index.html"); , pero no funciona.

Alguien podria decirme como hacerlo?
Desde ya muchas gracias
 
probaste con

Insertar CODE, HTML o PHP:
header("location: http://tusitio.com/gracias/index.html",TRUE,302);
die;

si aun no funciona coloca en la parte superior de tu script:

Insertar CODE, HTML o PHP:
error_reporting(-1);

analiza lo que imprime.

asegurate de no enviar html antes del header.
 
probaste con

Insertar CODE, HTML o PHP:
header("location: http://tusitio.com/gracias/index.html",TRUE,302);
die;

si aun no funciona coloca en la parte superior de tu script:

Insertar CODE, HTML o PHP:
error_reporting(-1);

analiza lo que imprime.

asegurate de no enviar html antes del header.

Muchas gracias por tu respuesta, coloque lo que me indicas, pero sigue sin funcionar. Tambien agregue el
Insertar CODE, HTML o PHP:
error_reporting(-1);
Peo no me imprimio ningun error

Saludos
 
Insertar CODE, HTML o PHP:
if($mail->Send()){
            //Header("Location: ./gracias/index.html");
            echo '{ "alert": "success", "message": "' . $message_success . '" }';
        }else{
            echo '{ "alert": "error", "message": El correo electrónico <strong> no se pudo enviar </strong> debido a algún error inesperado. Vuelva a intentarlo más tarde.<br /><br /><strong>Razón:</strong><br />' . $mail->ErrorInfo . '" }';
        }

el ultimo else esta de mas por lo que se ve del código, no se que habrá antes. y si vas a usar header es con la H minúscula.

Insertar CODE, HTML o PHP:
header('Location: url');
 
Viendo el código se nota que la respuesta es un JSON, por tanto debe estar procesandose con AJAX el formulario, en tal caso podrías enviar una variable goto en el JSON y procesarla con javascript, algo como
PHP:
echo '{ "alert": "success", "message": "' . $message_success . '", "goto","./index/gracias.html"}';
Y en el código javascript, donde lo proceses debe haber algo tipo
JavaScript:
data = JSON.parse(data);
Que convierte el JSON a un objeto, allí agregas
JavaScript:
if(data.goto){location.href = data.goto}
Obvio todo esto adaptado a tu código.

Si cambias los headers del archivo PHP sólo harías una redirección de lado de servidor en ese script, es como que hayas enviado una petición ajax a gracias.html, más no se redirige el cliente.
 
Hola a todos, muchas gracias por responder.

Descubri como solucionarlo, resulta que estaba poniendo el header('Location: url'); en el archivo .php que tengo para enviar el mail... siendo que el usuario en ese momento estaba en la web que contenia el formulario.

Lo que hice en la web del formulario, fue comprobar con js cuando el usuario envio el formulario, y con un script lo redireccione a la thank you page.

Muchas gracias
 
Atrás
Arriba