[Resolvido] Envio de Form
Saudações galera!
Sou Marcos Sá, e estou a muitos meses aprendendo sobre HTML5 - CSS - PHP - AJAX .. Eu sei que é pouco tempo de aprendizado para essa nova Skil que estou gravando em minha massa massa encefálica. Vamos ao caso.
1 - Meu site está hospedado na locaweb.
2 - Com a ajuda do google, encontrei um form bacana para iniciar.
3 - Minha ideia inicial era enviar os dados via POST sem dar refresh na página toda, e sim somente, na section do form propriamente dita.
4 - Outra questão era colocar o "reCAPTCHA", da google, para evitar os malas de plantão.
5 - E que todo o site fosse responsivo.
O problema:
Toda vez que o form é enviado os acentos não são respeitados. Vai que vai na loucu~~12~3ra só heheh
Segue as declarações do php em questão abaixo:
<?php
// require ReCaptcha class
require('recaptcha-master/src/autoload.php');
// configure
if (isset($_POST['txtdest']))
{
// $destino = $_POST['txtdest'];
// $assunto = $_POST['txtass'];
// $mensagem = $_POST['txtmsg'];
if (PATH_SEPARATOR ==":") {
$quebra = "\r\n";
} else {
$quebra = "\n";
}
$headers = "MIME-Version: 1.1".$quebra;
$headers .= "Content-type: text/html; charset=utf-8" .$quebra;
$headers .= "From: contato@site.com.br".$quebra;
$headers .= "Return-Path: ";
}
$sendTo = 'Site <contato@site.com.br>';
$subject = 'Contato Pelo Site';
$fields = array('name' => 'Name', 'message' => 'Message'); // array variable name => Text to appear in the email
$okMessage = 'Formulário enviado com sucesso.';
$errorMessage = 'Houve um erro no envio, por favor, verificar o reCAPTCHA.';
$recaptchaSecret = '********************';
// let's do the sending
try
{
if (!empty($_POST)) {
// validate the ReCaptcha, if something is wrong, we throw an Exception,
// i.e. code stops executing and goes to catch() block
if (!isset($_POST['g-recaptcha-response'])) {
throw new \Exception('ReCaptcha is not set.');
}
// do not forget to enter your secret key in the config above
// from https://www.google.com/recaptcha/admin
$recaptcha = new \ReCaptcha\ReCaptcha($recaptchaSecret, new \ReCaptcha\RequestMethod\CurlPost());
// we validate the ReCaptcha field together with the user's IP address
$response = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
if (!$response->isSuccess()) {
throw new \Exception('ReCaptcha was not validated.');
}
// everything went well, we can compose the message, as usually
$emailText = "Nova Mensagem.\n=============================\n";
foreach ($_POST as $key => $value) {
if (isset($fields[$key])) {
$emailText .= "$fields[$key]: $value\n";
}
}
mail($sendTo, $subject, $emailText, $headers, "-r". "contato@site.com.br");
$responseArray = array('type' => 'success', 'message' => $okMessage);
}
}catch (\Exception $e)
{
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
}
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$encoded = json_encode($responseArray);
header('Content-Type: application/json');
echo $encoded;
}else {
echo $responseArray['message'];
}
Nota* = Todos os Html
Spoiler
Spoiler
estão com a declaração <meta charset="utf-8">
Nota** = no php.ini também está declarado da seguinte forma:
default_charset = "utf-8"
internal_encoding = 'utf-8'
output_encoding = 'utf-8'
Onde será que estou pecando amigos?Discussão (28)
Carregando comentários...