Foros del Web » Programando para Internet » PHP »

Acentos y Ñ

Estas en el tema de Acentos y Ñ en el foro de PHP en Foros del Web. Hola a todos. Tengo un script para enviar correos, pero el problema es que no salen los acentos ni las letras ñ. ¿Cual es el ...
  #1 (permalink)  
Antiguo 09/04/2009, 01:47
Avatar de DIRAB51  
Fecha de Ingreso: diciembre-2002
Mensajes: 106
Antigüedad: 21 años, 4 meses
Puntos: 0
Acentos y Ñ

Hola a todos.
Tengo un script para enviar correos, pero el problema es que no salen los acentos ni las letras ñ.

¿Cual es el problema?.

<?php
// Recibiendo las variables
@$pfw_ip= $_SERVER['REMOTE_ADDR'];
@$nombre = addslashes($_POST['nombre']);
@$apellidos = addslashes($_POST['apellidos']);
@$email = addslashes($_POST['email']);
@$telefono = addslashes($_POST['telefono']);
@$asunto = addslashes($_POST['asunto']);
@$mensaje = addslashes($_POST['mensaje']);

// Validación
//if (strlen($nombre) == 0 )
//{
//die("<p align='center'><b><font face='Verdana' size='2' color='#FF0000'>Ingrese un nombre válido</font></b></p>");
//}

//if (! ereg('[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+', $email))
//{
//die("<p align='center'><b><font face='Verdana' size='2' color='#FF0000'>El formato del E-mail no es válido.</font></b></p>");
//}

if (strlen($email) == 0 )
{
die("<p align='center'><b><font face='Verdana' size='2' color='#FF0000'>El formato del E-mail no es válido.</font></b></p>");
}

if (strlen($asunto) == 0 )
{
die("<p align='center'><b><font face='Verdana' size='2' color='#FF0000'>Falta el Asunto.</font></b></p>");
}

if (strlen($mensaje) == 0 )
{
die("<p align='center'><b><font face='Verdana' size='2' color='#FF0000'>No ha ingresado el Mensaje.</font></b></p>");
}

//echo("<p align='center'><font face='Verdana' size='5' color='#008000'>El mensaje se ha enviado con éxito.</font></p>");sleep(10);
//Enviando el Email
$pfw_header = "From: $email\n"
. "Reply-To: $email\n";
$pfw_subject = "Correo desde mi página web.";
$pfw_email_to = "consultas(@)mi dominio";
$pfw_message = "Visitor's IP: $pfw_ip\n"
. "Nombre: $nombre\n"
. "Apellidos: $apellidos\n"
. "Email: $email\n"
. "Teléfono: $telefono\n"
. "Asunto: $asunto\n"
. "Mensaje: $mensaje\n";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

//echo("<p align='center'><font face='Verdana' size='5' color='#008000'>El mensaje se ha enviado con éxito.</font></p>");

//header ("Location: contacto.html")
?>
<?php
header('Location: contacto.html');
?>


Gracias.
  #2 (permalink)  
Antiguo 09/04/2009, 02:16
Avatar de vicmx  
Fecha de Ingreso: junio-2008
Ubicación: México
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Acentos y Ñ

Pon una cabecera que arroje la codificación en que este tu documento, es decir si usas UTF-8 o ISO-8859-1 según el caso, como es un header recuerda que debe ir antes de cualquier salida de texto, espero haberme explicado bien.

header('Content-Type: text/html; charset=ISO-8859-1');

y como dato en ves de usar if (strlen($email) == 0 ) para checar una variable vacia mejor usa empty() que verifica si una variable es vacia o no, suerte!
  #3 (permalink)  
Antiguo 09/04/2009, 02:38
Avatar de DIRAB51  
Fecha de Ingreso: diciembre-2002
Mensajes: 106
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: Acentos y Ñ

Con esto siguen saliendo los caracteres mal.
header('Content-Type: text/html; charset=ISO-8859-1');
Alguna sugerencia?.
Gracias
  #4 (permalink)  
Antiguo 09/04/2009, 02:42
Avatar de vicmx  
Fecha de Ingreso: junio-2008
Ubicación: México
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Acentos y Ñ

En tu documento html has colocado el meta:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Si no es asi agregalo. Si la codificación UTF-8 no funciona prueba la ISO-8859-1
  #5 (permalink)  
Antiguo 09/04/2009, 02:55
Avatar de DIRAB51  
Fecha de Ingreso: diciembre-2002
Mensajes: 106
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: Acentos y Ñ

Ahora sí
Era UTF-8.
Gracias amigo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:30.