Enviar visitante para thank you page após completar formulário

  • Autor Autor gringofer
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
G

gringofer

Beta
Usuário com poucas negociações! Use sempre o saldo do 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:

Inserir CODE, HTML ou 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
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
probaste con

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

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

Inserir CODE, HTML ou PHP:
error_reporting(-1);

analiza lo que imprime.

asegurate de no enviar html antes del header.
 
probaste con

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

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

Inserir CODE, HTML ou 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
Inserir CODE, HTML ou PHP:
error_reporting(-1);
Peo no me imprimio ningun error

Saludos
 
Inserir CODE, HTML ou 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.

Inserir CODE, HTML ou 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
 
Voltar
Topo