Que tal, amigos.
Tengo un problema con un formulario de contacto... Ya revise muchas de las opciones que dan en este foro, pero no he podido solucionarlo al 100%.
Resulta que mi formulario no aceptaba acentuaciones ni ñ. Ya cambie el iso por utf8 y funcionó en el mensaje que me dejan, pero el correo que me llega me despliega el nombre del contactante con caracteres especiales en lugar de letras acentuadas... por ejemplo: Luis Martìnez
Les dejo el codigo y espero que me puedan ayudar. Mil gracias!!
<?php
// VALUES FROM THE FORM
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['msg'];
// ERROR & SECURITY CHECKS
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Error: Invalid E-Mail Address";
exit;
}
if ( ( !$name ) ||
( strlen($name) > 100 ) ||
( preg_match("/[:=@\<\>]/", $name) )
)
{
print "Error: Por favor, escribe tu nombre sin acentos ni simbolos";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Error: Found Invalid Header Field";
exit;
}
if ( !$message )
{
print "Error: No Message";
exit;
}
if (eregi("\r",$email) || eregi("\n",$email)){
print "Error: Invalid E-Mail Address";
exit;
}
if (FALSE) {
print "Error: You cannot send to an email address on the same domain.";
exit;
}
// CREATE THE EMAIL
$headers = "Content-Type: text/plain; charset=utf-8\n";
$headers .= "From: $name <$email>\n";
$recipient = "
[email protected]";
$subject = "Mensaje recibido desde mipagina.com";
$message = wordwrap($message, 1024);
// SEND THE EMAIL TO YOU
mail($recipient,$subject,$message,$headers);
// REDIRECT TO THE THANKS PAGE
header("location: thanks.php");
?>