Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, tenho um formulário de contato que funciona perfeitamente, exceto por um detalhe.
Para enviar o email ele abre o arquivo envia.php e dá a mensagem que foi enviado o sucesso, só que essa mensagem aparece em outra página, e não dentro do conteúdo do site.
Eu pensei em usar If/Else e Session para mandar o conteúdo da variável para outro arquivo e este abrir a mensagem dentro do site. Mas sou iniciante em PHP e não obtive sucesso.
São dois arquivos, o formulário HTML normal e o envia.php abaixo:
<?php
require_once('phpmailer/class.phpmailer.php');
session_start();
$erros = "";
if(empty($_POST['nome'])){
$erros .= "O nome deve ser preenchido.";
}
if(empty($_POST['email']) ){
$erros .= "O E-mail deve ser preenchido.";
}else{
$email = $_POST['email'];
eregi("([\._0-9A-Za-z-]+)@([0-9A-Za-z-]+)(\.[0-9A-Za-z\.]+)",$email,$match);
if(!isset($match)){
$erros .= "O e-mail informado é inválido.";
}
}
if(empty($_POST['mensagem'])){
$erros .= "A mensagem deve ser preenchida.";
}
if( empty($erros) ){
$phpmail = new PHPMailer();
$phpmail->IsSMTP(); // envia por SMTP
$phpmail->Host = "smtp.gmail.com"; // SMTP servers
$mail->SMTP_PORT = "465";
// ajusta a porta de smt a ser utilizada. Neste caso, a 587 que o GMail utiliza
$mail->SMTPSecure = “tls”;
// ajusta o tipo de comunicação a ser utilizada, no caso, a TLS do GMail
$phpmail->SMTPAuth = true; // Caso o servidor SMTP precise de autenticação
$phpmail->Username = "email"; // SMTP username
$phpmail->Password = "senha"; // SMTP password
$phpmail->IsHTML(true);
$phpmail->From = $_POST['email'];
$phpmail->FromName = $_POST['nome'];
$phpmail->AddAddress("email");
$phpmail->Subject = $assunto = 'Contato';
$phpmail->Body .= "<br>Nome: ".$_POST['nome']."";
$phpmail->Body .= "<br>E-mail: ".$_POST['email']."";
$phpmail->Body .= "<br>Telefone: ".$_POST['telefone']."";
$phpmail->Body .= "<br>Assunto: ".$_POST['assunto']."";
$phpmail->Body .= "<br>Mensagem: ".nl2br($_POST['mensagem'])."";
$send = $phpmail->Send();
if($send){
echo "A Mensagem foi enviada com sucesso.";
}else{
echo "Não foi possível enviar a mensagem. Erro: " .$phpmail->ErrorInfo;
}
}else{
echo $erros;
}
}else{
echo $erros;
}
?>
Como faço para que a mensagem seja exibida logo abaixo do formulário ou que abra outro arquivo no local do form?
Obrg desde já
Carregando comentários...