problemas con el archivo .php de un formulario UTF-8

A

hola a todos
me uní al foro porque aquí encontré un problema similar al mio, estoy haciendo un formulario de contacto para una pagina web, y todo funciona bien, me llega el mensaje al correo que deseo y todo, el problema viene con los acentos o la letra ñ, he leído que es por la codificación utf-8, pero no se nada de esto la verdad mi pagina la he hecho casi de puro copiar y pegar cosas, ojala alguien me pueda ayudar a corregir este problema que pienso yo que esta en mi archivo php,

aquí les pongo el código del archivo php, lo unico que quiero es que mande el mensaje con acentos bien

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
if(isset($_POST['email'])) {

// Debes editar las próximas dos líneas de código de acuerdo con tus preferencias
$email_to = "info@kartik.com.mx";
$email_subject = "Contacto desde el sitio web";

// Aquí se deberían validar los datos ingresados por el usuario
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['empresa']) ||
!isset($_POST['pais']) ||
!isset($_POST['ciudad']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {

echo "<b>Ocurrió un error y el formulario no ha sido enviado. </b><br />";
echo "Por favor, vuelva atrás y verifique la información ingresada<br />";
die();
}

$email_message = "Detalles del formulario de contacto:\n\n";
$email_message .= "Nombre: " . $_POST['first_name'] . "\n";
$email_message .= "Apellido: " . $_POST['last_name'] . "\n";
$email_message .= "E-mail: " . $_POST['email'] . "\n";
$email_message .= "Empresa: " . $_POST['empresa'] . "\n";
$email_message .= "País: " . $_POST['pais'] . "\n";
$email_message .= "Ciudad: " . $_POST['ciudad'] . "\n";
$email_message .= "Teléfono: " . $_POST['telephone'] . "\n";
$email_message .= "Comentarios: " . $_POST['comments'] . "\n\n";


// Ahora se envía el e-mail usando la función mail() de PHP
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: '.$email."\r\n";

@mail($email_to, $email_subject, $email_message, $headers);

echo "El formulario se ha enviado con éxito";
}
?>

Ojala alguien me pueda ayudar a corregir este problema, gracias ! :D

RaymaN

Prueba a guardar el archivo php con codificación UTF-8.

voignar

Si usas notepad++ crea el fichero con la codificación UTF-8 sin bom

A

Estoy haciéndolo desde dreamweaver cs6, la verdad no se donde moverle ahí.
Prove guardarlo en utf-8 pero sigo recibiendo los mensajes sin acentos :(

ya probé guardarlo con notepad ++ en utf-8 sin bom y sigue igual

alguna otra sugerencia?

r2d2rigo

Holaquetal, utf8_encode a $email_message antes de mandarlo o que tal.

A

Puse así:

utf8_encode(@mail($email_to, $email_subject, $email_message, $headers));

Y tampoco me funciono, jejeje talvés no era ahí? la verdad se poco y nada de todo esto.

r2d2rigo

@mail($email_to, utf8_encode($email_subject), utf8_encode($email_message), $headers) hijo mio...

1
A

Salio peor, mira:

País: México

Teléfono: 5555555555

Comentarios: áéíóú 1234567890

y deberia decir:

País: México

Teléfono: 55555555

Comentarios: áéíóú 1234567890

13500

prueba a poner utf8_decode en lugar de encode

taltal

#1 Pon todas las variables de $email_message DESPUÉS de declarar las variables de $headers.

Usuarios habituales