El motivo de mi mensaje es que estoy armando un sitio en castellano utilizando UTF-8 en el charset y hasta ahi todo sin problemas.
Ocurre que en los formularios del sitio, luego de completar la información en los campos, estos sustituyen los caracteres latinos (ñ, é, é, í, etc.) de modo equivocado, por ejemplo á, é,*ñ, etc.
Esto sucede cuando recibo el mensaje, tanto en los campos que escribe el PHP para identificarlos en el mail como en el texto completado por el usuario.
A conitinuacion les dejo el codigo que estoy usando antes de abrir el head, a ver si me pueden ayudar:
Código:
Les agradeceré cualquier ayuda que puedan darme al respecto, muchas gracias! <?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"; 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; } } ?>