26/07/2011, 09:11
|
| | Fecha de Ingreso: febrero-2010
Mensajes: 11
Antigüedad: 14 años, 9 meses Puntos: 0 | |
Respuesta: Caracteres latinos no se escriben correctamente en formularios Gracias maycol!
Estuve viendo que el utf8 decode podria ser la solucion, pero debo estar aplicando algo mal en el codigo proque sigue mostarndo caracteres extraños al enviar el correo.
Estoy utilizando el siguiente codigo: Código PHP: <?php
$your_email ='[email protected]';
session_start();
$errors = '';
$name = '';
$visit_email = '';
$user_message = '';
$name_0 = '';
$visit_email_0 = '';
$user_message_0 = '';
// INICIO CODIGO FORM SIDEBAR
if(isset($_POST['submit_side']))
{
$name = $_POST['name'];
$visit_email = $_POST['email'];
$tel = $_POST['tel'];
$host1 = $_POST['hostini'];
$host2 = $_POST['hostava'];
$host3 = $_POST['hostpre'];
$registro = $_POST['regi'];
$emailing = $_POST['mailing'];
$otros = $_POST['otros'];
$user_message = $_POST['message'];
///------------Do Validations-------------
if(empty($name)||empty($visit_email))
{
$errors .= "Name and Email are required fields. ";
}
if(IsInjected($visit_email))
{
$errors .= "Bad email value!";
}
if(empty($_SESSION['6_letters_code'] ) ||
strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
{
$errors .= "El código de verificación no coincide!";
}
if(empty($errors))
{
//send the email
$to = $your_email;
$subject="Consulta rápida > Lightfaro hosting";
$from = $your_email;
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
$body = "$name ha enviado la siguiente consulta desde Lightfarohosting.com\n\n".
"Nombre: $name\n".
"e-mail: $visit_email\n".
"Tel.: $tel\n\n".
"SERVICIO/S DE INTERES:\n".
"$host1 - $host2 - $host3 - $registro - $emailing - $otros\n\n".
"Conmentarios:\n".
"$user_message\n\n".
"IP: $ip\n";
$headers = "From: $visit_email \r";
$name=utf8_decode($name);
$user_message=utf8_decode($user_message);
mail($to, $subject, $body, $headers);
header('Location: index-ok.php');
}
} // FIN CODIGO FORM SIDEBAR
// Function to validate against any email injection attempts
function IsInjected($str)
{
$injections = array('(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str))
{
return true;
}
else
{
return false;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Gracias! |