Formulário de Contato em HMTL e PHP com captcha

postado em: PHP, Programação | 0

Iremos utilizar um formulário criado em HTML com validação em PHP das informações inseridas. Foi criado uma pasta includes para inserir os script em PHP.

Fomulário em HTML:

<form action=”#” method=”post” target=”_self”>//O Action aponta para o index, pois quem vai validar será o recaptcha.
Nome: <input name=”fNome” type=”text” size=”24″required></br>
Telefone:<input name=”fTelefone” type=”text” size=”22″ required></br>
Endere&ccedil;o: <input name=”fEndereco” type=”text” required></br>
E-mail: <input name=”fEmail” type=”text” size=”23″ required></br>
Pergunta: </br>
<textarea rows=”8″ cols=”40″ name=”fDetalhes”></textarea></br>

<!– Este é o código PHP do recaptcha que fará a validação das mensagens e envio do email.–>

<?php include_once(‘includes/recaptcha.php’);?>
<input type=”image” src=”/imagens/BtnEnviar.png” value=”Enviar” />
</form>

Código do recaptcha em PHP:

Pode ser feito o download no link: http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest e colocado dentro da pasta includes.

Leia o Artigo do Google:  https://developers.google.com/recaptcha/old/docs/php

<?php
require_once(‘recaptchalib.php’);//Biblioteca
// Get a key from https://www.google.com/recaptcha/admin/create
$publickey = “6LfND_wSAAAAABDgPQeXT_6w_ytKPiNIPE-nKNr_”;
$privatekey = “6LfND_wSAAAAAEcz-PQzkPchKLCv7jpkAtF4IEem”;

# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = null;

# was there a reCAPTCHA response?
if ($_POST[“recaptcha_response_field”]) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER[“REMOTE_ADDR”],
$_POST[“recaptcha_challenge_field”],
$_POST[“recaptcha_response_field”]);

if ($resp->is_valid) {
echo “Mensagem enviada com sucesso!”;
include_once ‘mail-request.php’;//Se a imagem conferir será enviado a mensagem através deste script.
} else {
# set the error code so that we can display it
echo “Erro: Não confere com a imagem!”;
$error = $resp->error;
}
}
echo recaptcha_get_html($publickey, $error);
?>

Código de envio do e-mail, utilizando o mail() do PHP:

<?php
ob_start();//inicia echo
$para = ‘seuemail@seudominio.com.br’;
$nome = $_POST[‘fNome’];
$tel = $_POST[‘fTelefone’];
$end = $_POST[‘fEndereco’];
$remetente = $_POST[‘fEmail’];
$detal = $_POST[‘fDetalhes’];

$all = “Nome: $nome <br>”
.”Telefone: $tel<br>”
.”Endereço: $end<br>”
.”E-mail: $remetente<br>”
.”Pergunta: $detal<br>”;
//Cabeçalho
$headers = ‘MIME-Version: 1.0’.”\r\n”;
$headers .= ‘Content-type: text/html; charset=iso-8859-1’.”\r\n”;
$headers .= “From: $remetente\n”;
$headers .= “Return-Path: $remetente\n”;
//$headers .= “X-Sender:”.$para.”\n”;
//$headers .= “X-Mailer: PHP v”.phpversion().”\n”;
$headers .= “X-IP: “.$_SERVER[‘REMOTE_ADDR’].”\r\n”;
/*
* bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
*/

mail($para,’Contato – Nome do Seu Site’ ,$all ,$headers);
ob_end_clean();//limpa echo
?>

Substitua “seuemail@seudominio.com.br” pelo e-mail que receberá as mensagens. Se for múltiplos e-mails insira virgulas como no código:  ‘seuemail@seudominio.com.br’.’,’.’outroemail@seudomino.com.br’;