Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-09-2006
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
tildes caprichosos

Tengo un formulario de consulta en una página. Este formulario contiene entre otras cosas un Textarea donde el señor que visita mi página pone el texto que quiere.

El formulario está dirigido a otra página php donde luego de verificar algunas cosas, toma el texto del mensaje escrito en el textarea (capturado con $_Post[...]), lo pone en una variable
Código:
$mensaje = $_Post["msg"]
y ésta la envia por email utilizando la función "mail" de php.

Cuando recibo el mail que debería decir:
Somos un matrimonio con dos niños de 3 y 6 años y viajaremos los últimos días de noviembre.

dice:
Somos un matrimonio con dos niños de 3 y 6 años y viajaremos los ùltimos días de noviembre

Qué tratamiento puede hacérsele a la variable $mensaje antes de mandar el mail para que éste llegue con los caracteres que corresponda?
Responder Con Cita
  #2  
Antiguo 30-09-2006
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
perdón pero no dije que el mail se envía como texto plano (es decir: deseo que continúe así)
Responder Con Cita
  #3  
Antiguo 30-09-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Hola, intenta pasando la variable por la función htmlspecialchars_decode() de php:
Código PHP:
$mensaje htmlspecialchars_decode($_Post["msg"]); 
Saludos.
Responder Con Cita
  #4  
Antiguo 30-09-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A mí me parece que el asunto puede estar en la codificación del correo en cuestión. Por ejemplo, yo utilizo la siguiente función para enviar correo:

Código PHP:
function Enviar($correoDestino,$correoRemite,$asunto,$cuerpo,$cabeceras='')
{
  if(
trim($cabeceras) == '')
  {
    
$cabeceras "MIME-Version: 1.0\n".
                 
"From: $correoRemite\n".
                 
"Content-Type: text/plain; charset=\"utf-8\"";
  }
  return 
mail($correoDestino$asunto$cuerpo$cabeceras);

Funciona bien, pero, si el cliente de correo no "reconoce" ni es capaz de tratar, por tanto, la codificación de caracteres "UTF-8", pues ya está el lío con los acentos, por poner un ejemplo de caracteres "conflictivos".

¿Probaste si ocurre lo mismo recibiendo el correo en otro cliente distinto del que usas? Por poner un ejemplo, prueba a enviar un correo a alguna cuenta en GMail, puesto que ahí se trata como se debe los correos codificados con "UTF-8"... claro, que, no sé si es esta la codificación que usas... o si hay alguna "por defecto"...

Por otro lado, podrías probar a indicar en la cabecera del correo (tal como yo hago en la función de más arriba) otra codificación de caracteres... "ISO-8815", se me ocurre, para ver si de ese modo el asunto va como esperas.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 30-09-2006 a las 09:21:31.
Responder Con Cita
  #5  
Antiguo 30-09-2006
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
En realidad el correo del destinatario se obtiene automáticamente de una base de datos (ya que el usuario elige un destinatario en el formulario y ahí manda su consulta) es decir que puede ser cualquiera. Lo que yo me tengo que asegurar es que siempre funciona bien...

VoOy a probar lo de los encabezados, luego te cuento. Desde ya te digo que lo del htmlspecialchars_decode me da un error como que no existe la función. La htmlspecialchars sí, pero no la de decodificar no sé por qué. Incluso la copié y la pegué del manual online para no equivocarme pero ni así funciona.
Responder Con Cita
  #6  
Antiguo 30-09-2006
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
Nop...
Con ese charset si el usuario escribe:
"Los últimos ñatos" en el textarea, el mail se envía como:

"Los últimos ñatos"
Responder Con Cita
  #7  
Antiguo 30-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Además de las cabeceras en el envío del correo como menciona dec, supongo que es también necesario que el juego de caracteres esté correctamente especificado en la página web que contiene el TextArea.

Código:
<head>
<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
...
</head>
// Saludos
Responder Con Cita
  #8  
Antiguo 01-10-2006
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
Al fin!!!
Gracias a ambos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Porque no me recibe ni tíldes ni ñ? fidel Firebird e Interbase 13 12-04-2007 22:13:16
problemas con las tildes, la ñ en el servidor web FEDORA cahosoft Linux 2 12-07-2006 10:53:22
problema con eñes y tildes jarto MySQL 1 28-04-2005 16:01:47
UPPER, UpperCase con eñes, tildes ... Tomás Firebird e Interbase 3 15-01-2004 19:24:24


La franja horaria es GMT +2. Ahora son las 20:22:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi