Formulário de contato recaptcha
Olá, estou tentando utilizar este formulário de contato com o recaptcha, porém apresenta erro que não estou conseguindo resolver.
ERRO: Por favor faça a verificação do captcha abaixo
Link formulário: http://cartorio1bg.com.br/teste/andre/formulario-contato.php
PHP INFO MEU SERVIDOR: http://cartorio1bg.com.br/teste/andre/info.php
link: error_log : http://cartorio1bg.com.br/teste/andre/error_log
Arquivos necessário:
-
PHPMailerAutoload.php – Responsável por carregar todas as dependências da classe PHPMailer
-
class.phpmailer.php – A classe principal do PHPMailer
-
class.smtp.php – A classe que vai permitir você fazer envios via SMTP
Post original deste formulário: https://wiki.dialhost.com.br/formulario-de-contato-php-captcha/
Código HTML – formulario-contato.php
<?php
include 'envia.php';
?>
<html>
<head>
<meta charset="utf8">
<title>Formulário de contato</title>
<!-- Aqui adiciona o script do ReCaptcha -->
<script src='https://www.google.com/recaptcha/api.js'></script>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<h1>Este é um teste de formulário de contato</h1>
<form method="POST" action="formulario-contato.php">
<label>Digite seu nome:
<input type="text" name="nome" value="" placeholder="ex: João" required>
</label>
<label>Digite seu e-mail:
<input type="email" name="email" value="" placeholder="ex: joaoclb@gmail.com" required>
</label>
<label>Digite o assunto:
<input type="text" name="assunto" value="" placeholder="ex: orçamento" required>
</label>
<label>Digite sua mensagem:
<input type="text" name="msg" value="" placeholder="Digite sua mensagem aqui" required>
</label>
<!-- Div do ReCaptcha foi adicionado no final do formulário -->
<div class="g-recaptcha" data-sitekey="|*SEU-SITE-KEY*|"></div>
<input class="send" type="submit">
</form>
</div>
</body>
</html>
Código PHP – envia.php
<?php
//Defino a Chave do meu site
$secret_key = '|SEU-SECRET-KEY|';
//Pego a validação do Captcha feita pelo usuário
$recaptcha_response = $_POST['g-recaptcha-response'];
// Verifico se foi feita a postagem do Captcha
if(isset($recaptcha_response)){
// Valido se a ação do usuário foi correta junto ao google
$answer =
json_decode(
file_get_contents(
'https://www.google.com/recaptcha/api/siteverify?secret='.$secret_key.
'&response='.$_POST['g-recaptcha-response']
)
);
// Se a ação do usuário foi correta executo o restante do meu formulário
if($answer->success) {
// Carrego a classe PHPMailer através do Autoload
include "PHPMailerAutoload.php";
// Instancio a classe PHPMailer
$msg = new PHPMailer();
// Faço todas as configurações de SMTP para o envio da mensagem
$msg->CharSet = "UTF-8";
$msg->isSMTP();
$msg->Host = '|*SMTP.SEUDOMINIO.COM.BR*|';
$msg->SMTPAuth = true;
$msg->Username = '|*SEU-EMAIL@SEUDOMINIO.COM.BR*|';
$msg->Password = '|*SUA-SENHA*|';
$msg->Port = 587;
$msg->SMTPAutoTLS = false;
$msg->AuthType = 'PLAIN';
//Defino o remetente da mensagem
$msg->setFrom('|*SEU-EMAIL@SEUDOMINIO.COM.BR*|','|*NOME-DO-SEUEMAIL*|');
// Defino a quem esta mensagem será respondida, no caso, para o e-mail
// que foi cadastrado no formulário
$msg->addReplyTo($_POST['email'], $_POST['nome']);
// Defino a mensagem como mensagem de texto (Ou seja não terá formatação HTML)
$msg->IsHTML(false);
// Adiciono o destinatário desta mensagem, no caso,
//minha conta de contatos comerciais.
$msg->AddAddress('|*SEU-EMAIL@SEUDOMINIO.COM.BR*|', '|*NOME-DO-SEUEMAIL*|');
// Defino o assunto que foi digitado no formulário
$msg->Subject = $_POST['assunto'];
// Defino a mensagem que foi digitada no formulário
$msg->Body = $_POST['msg'];
// Defino a mensagem alternativa que foi digitada no formulário.
// Esta mensagem é utilizada para validações AntiSPAM e por isto
// é muito recomendado que utilize-a
$msg->AltBody = $_POST['msg'];
// Faço o envio da mensagem
$enviado = $msg->Send();
// Limpo todos os registros de destinatários e arquivos
$msg->ClearAllRecipients();
// Caso a mensagem seja enviada com sucesso ela retornará sucesso
// senão, ela retornará o erro ocorrido
if ($enviado){
echo "E-mail enviado com sucesso!";
}
else {
echo "Não foi possível enviar o e-mail.";
echo "<b>Informações do erro:</b> " . $msg->ErrorInfo;
}
}
// Caso o Captcha não tenha sido validado
//retorno uma mensagem de erro.
else {
echo "Por favor faça a verificação do captcha abaixo";
}
}Discussão (11)
Carregando comentários...