sexta-feira, 21 de janeiro de 2011

Sistema de envio de e-mails em PHP com redirecionamento para mesma página e mensagem de sucesso.

Olá pessoal,

A dica de hoje é sobre PHP. Achar códigos que enviam formulários através de PHP é uma tarefa muito fácil, tem aos montes com uma busca básica no Google.

Porém o que não achei foi um sistema de redirecionamento eficiente, todos eles utilizam o <http-equiv="REFRESH" content="0;url=http://www.dominio.com">, que é muito legal, você pode definir a quantidade de tempo que vai permanecer na página utilizando o content="x (aonde x é os segundos) e mostrar uma mensagem durante esse tempo.

Seria perfeito, se esse comando funcionasse no Chrome e Safari, mas não funciona.

Minha solução para o problema foi a seguinte, logo abaixo da tag body utilize um pequeno trecho em php, aonde defino uma variável status. Se o status for igual a "nada" ela recebe o valor 1.


<?php
if ($status=='')
{
$status=1;

}
?>

Agora o código de envio do formulário, não estou me focando em colocar a estrutura do formulário.

<?php

if ($status==0) /*Esse if checa o valor do status, se for 0 ele executa o código */
{

/*Recebimento dos dados do formulário */


$corpo .= "Nome: " . $_REQUEST["nome"] . "
";
$corpo .= "Email: " . $_REQUEST["email"] . "
";
$corpo .= "Telefone: " . $_REQUEST["telefone"] . "
";
$corpo .= "Motivo: " . $_REQUEST["motivo"] . "
";
$corpo .= "Mensagem: " . $_REQUEST["mensagem"] . "
";

$header = "From:Coloque o remetente
";
$header = "Reply-To: $_POST[enviar_email]

";

mail("email@destinatario.com.br", "Assunto do e-mail", $corpo, $header);

echo "

Mensagem enviada com sucesso, em breve responderemos sua solicitação.
"; /*Mensagem de sucesso */

}

?>

A última alteração tem que ser na TAG form do seu formulário, no action você tem que passar o valor 0 para a variável status.

<form method="post" action="contato.php?status=0;">

Ou seja, no momento que o usuário clicar no botão enviar, vai ativar o action do form, que vai pegar enviar o conteúdo para a mesma página contato.php mas setando o $status com 0, cai no if logo abaixo do body, passa direto e executa o código de envio do formulário!

Espero que seja útil!
Abraços e até a próxima!

Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...
Web Analytics