Problema de validação de acentuação no formulário de contato...
Olá, bom dia!
Estava com um problema de validação de um formulário para contato mas felizmente conseguiram me auxiliar no problema (obrigada ao Dochios e ao Leozitho). Um outro que ocorreu foi com a acentuação, mas a questão é que interpretei errado o Leozitho, do qual imaginou que eu estava me referindo à desconfiguração, como isso:
E-mail recebido:
>
First name: Clemência
Na verdade o que não consigo receber é qualquer coisa antes mesmo da validação, pois provavelmente é alguma configuração no código que está impedindo o seu envio, já que aparece a seguinte mensagem de erro, quando preencho com um acento agudo, por exemplo:
>
"We are very sorry, but there were error(s) found with the form you submitted. These errors appear below:
=== >The First Name you entered does not appear to be valid.
Please go back and fix these errors."
Ou seja, se eu preencho na parte do "first name" como "Patricia", ele aceita. Mas se eu preencho como "Patrícia", ele mostra rapidamente o erro acima.
Provavelmente, deve ser algo relacionado a isso:
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
O código PHP é esse:
<?php
if(isset($_POST['email'])) {
// CHANGE THE TWO LINES BELOW
$email_to = "teste@yahoo.com.br";
$email_subject = "website html form submissions";
function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$comments = $_POST['comments']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
// create email headers
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";$headers .= 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
<!-- place your own success html below -->
<meta HTTP-EQUIV="REFRESH" CONTENT="0; URL=http://www.teste.com/teste.html">
Thank you for contacting us. We will be in touch with you very soon.
<?php
}
die();
?>
Agradeço novamente, se puderem dar só mais essa força! Não entendo nada de programação (talvez, no máximo, a nível noob... >.>).
Discussão (2)
Carregando comentários...