Formulário de Contato em HMTL e PHP com captcha

A Tecnologia como Arte

Formulário de Contato em HMTL e PHP com captcha

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 = ‘[email protected]’;
$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 “[email protected]” pelo e-mail que receberá as mensagens. Se for múltiplos e-mails insira virgulas como no código:  ‘[email protected]’.’,’.’[email protected]’;