Foros del Web » Programando para Internet » PHP »

¿como hacer un tilde?

Estas en el tema de ¿como hacer un tilde? en el foro de PHP en Foros del Web. Hola, Estoy haciendo un formulario sencillo html y php, y las tildes en html las hago con: ´ y no tengo problemas, pero ¿cómo hago ...
  #1 (permalink)  
Antiguo 04/01/2010, 13:05
 
Fecha de Ingreso: marzo-2008
Ubicación: Valdivia
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 1
¿como hacer un tilde?

Hola,

Estoy haciendo un formulario sencillo html y php, y las tildes en html las hago con: ´ y no tengo problemas, pero ¿cómo hago el tilde en php?

Otra consulta, ¿por qué el mail del contacto llega de inmediato al hotmail, pero al gmail no llega?

Gracias de antemano.
  #2 (permalink)  
Antiguo 04/01/2010, 13:10
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ¿como hacer un tilde?

mmm de la misma manera á recuerda que la salida de codigo de php es html

pregunta 2 .. revisaste en spam?
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 04/01/2010, 13:15
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ¿como hacer un tilde?

Puedes usar htmlentities para que haga la conversión automaticamente de los acentos y ñ.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 04/01/2010, 13:24
 
Fecha de Ingreso: marzo-2008
Ubicación: Valdivia
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: ¿como hacer un tilde?

hola Hidekl,

Revisé el spam del gmail y justamente era eso.

Lo del tilde, es lo siguiente. Tengo un formulario de contacto, sencillo, de esos que andan dando vuelta por todos lados, y la línea de código que me da problemas es así:

Código PHP:
Ver original
  1. $asunto = 'Contacto desde Chocolatería';

esa "í" es la que llega mal. Más abajo hay otra línea:

Código PHP:
Ver original
  1. mail($para, ($asunto), utf8_decode($mensaje), $header);
¿tendrá algo que ver el "utf8_decode" de la última línea?

Gracias.
  #5 (permalink)  
Antiguo 04/01/2010, 13:27
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ¿como hacer un tilde?

intenta agregando la misma funcion para el asunto..
Código PHP:
Ver original
  1. mail($para, utf8_decode($asunto), utf8_decode($mensaje), $header);
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 04/01/2010, 13:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ¿como hacer un tilde?

También puedes usar lo que te indique, lee el link que te indique para que puedas lograrlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 04/01/2010, 13:29
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ¿como hacer un tilde?

@abimaelrc el problema es que esta enviando un mail ( por lo que se puede deducir ), los cuales llegan (por lo general) en texto plano, no en html
asi que no le servira de mucho htmlentities

Saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 04/01/2010, 13:52
 
Fecha de Ingreso: marzo-2008
Ubicación: Valdivia
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: ¿como hacer un tilde?

Cita:
Iniciado por Hidek1 Ver Mensaje
intenta agregando la misma funcion para el asunto..
Código PHP:
Ver original
  1. mail($para, utf8_decode($asunto), utf8_decode($mensaje), $header);
Intenté poniendo ese código al asunto y se arregló, el problema que tengo ahora es en el mensaje. Probé enviando la siguiente línea: "mensaje de prueba mañana con tilde á"
y llegó (hotmail y gmail) "mensaje de prueba ma? con tilde ?"

¿por qué pasa eso en el mensaje y no en asunto?
  #9 (permalink)  
Antiguo 04/01/2010, 13:54
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ¿como hacer un tilde?

intenta guardar el documento en UTF-8 sin BOOM, haber si se arregla...
archivo/guardar como.. y seleccionas esa codificación
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 04/01/2010, 14:29
 
Fecha de Ingreso: marzo-2008
Ubicación: Valdivia
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: ¿como hacer un tilde?

Cita:
Iniciado por Hidek1 Ver Mensaje
intenta guardar el documento en UTF-8 sin BOOM, haber si se arregla...
archivo/guardar como.. y seleccionas esa codificación
Probé guardando de esa manera y nada, no se soluciona.

Muchas gracias por todas las respuestas.
  #11 (permalink)  
Antiguo 04/01/2010, 15:12
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: ¿como hacer un tilde?

Que estas enviando en la variable $header??
  #12 (permalink)  
Antiguo 04/01/2010, 15:19
 
Fecha de Ingreso: marzo-2008
Ubicación: Valdivia
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: ¿como hacer un tilde?

Cita:
Iniciado por RobinHead Ver Mensaje
Que estas enviando en la variable $header??
este es mi php:

Código PHP:
Ver original
  1. <?php
  2. $nombre = $_POST['nombre'];
  3. $email = $_POST['email'];
  4. $telefono = $_POST['telefono'];
  5.  
  6. $header = 'De: ' . $email . " \r\n";
  7. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  8. $header .= "Mime-Version: 1.0 \r\n";
  9. $header .= "Content-Type: text/plain";
  10.  
  11. $mensaje = "Este mensaje fue enviado por " . $nombre ." \r\n";
  12. $mensaje .= "Su e-mail es: " . $email . " \r\n";
  13. $mensaje .= "Su teléfono es: " . $telefono . " \r\n";
  14. $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
  15. $mensaje .= "Enviado el " . date('d/m/Y', time());
  16.  
  17. $asunto = 'Contacto desde Chocolatería';
  18.  
  19. mail($para, utf8_decode($asunto), utf8_decode($mensaje), $header);
  20. echo 'Mensaje enviado correctamente';
  21. ?>
  #13 (permalink)  
Antiguo 04/01/2010, 16:12
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: ¿como hacer un tilde?

Si no necesitas enviar el contenido como texto plano intenta cambiando el header del Content-type, y te olvidas del charset

$header .= "Content-Type: text/plain";

por

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Cita:
Iniciado por mptx Ver Mensaje
este es mi php:

Código PHP:
Ver original
  1. <?php
  2. $nombre = $_POST['nombre'];
  3. $email = $_POST['email'];
  4. $telefono = $_POST['telefono'];
  5.  
  6. $header = 'De: ' . $email . " \r\n";
  7. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  8. $header .= "Mime-Version: 1.0 \r\n";
  9. $header .= "Content-Type: text/plain";
  10.  
  11. $mensaje = "Este mensaje fue enviado por " . $nombre ." \r\n";
  12. $mensaje .= "Su e-mail es: " . $email . " \r\n";
  13. $mensaje .= "Su teléfono es: " . $telefono . " \r\n";
  14. $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
  15. $mensaje .= "Enviado el " . date('d/m/Y', time());
  16.  
  17. $asunto = 'Contacto desde Chocolatería';
  18.  
  19. mail($para, utf8_decode($asunto), utf8_decode($mensaje), $header);
  20. echo 'Mensaje enviado correctamente';
  21. ?>
  #14 (permalink)  
Antiguo 04/01/2010, 16:23
 
Fecha de Ingreso: marzo-2008
Ubicación: Valdivia
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: ¿como hacer un tilde?

Voy a probar ahora a ver si me resulta....

gracias.
  #15 (permalink)  
Antiguo 04/01/2010, 16:35
 
Fecha de Ingreso: marzo-2008
Ubicación: Valdivia
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: ¿como hacer un tilde?

Cita:
Iniciado por RobinHead Ver Mensaje
Si no necesitas enviar el contenido como texto plano intenta cambiando el header del Content-type, y te olvidas del charset

$header .= "Content-Type: text/plain";

por

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
Ahhh! no me resulta!
Escribí en el formulario: "mío mañana" y llegó al mail: "m?y ma?"

puse lo siguiente en la línea header:
Código PHP:
Ver original
  1. $header .= "Content-Type: text/html; charset=iso-8859-1";
  #16 (permalink)  
Antiguo 05/01/2010, 07:29
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: ¿como hacer un tilde?

Toma el mensaje y haz lo siguiente.

$mensaje = "".utf8_encode("ñandú")."\r\n";
$mensaje .= "".utf8_decode("ñandú")."\r\n";
$mensaje .= "".htmlentities("ñandú")."\r\n";
$mensaje .= "".htmlspecialchars("ñandú")."\r\n";

mail($para, utf8_decode($asunto),$mensaje,$header);

y ve cual llega bien.

cuéntanos.
  #17 (permalink)  
Antiguo 25/02/2010, 10:08
 
Fecha de Ingreso: marzo-2008
Ubicación: Valdivia
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: ¿como hacer un tilde?

Cita:
Iniciado por RobinHead Ver Mensaje
Toma el mensaje y haz lo siguiente.

$mensaje = "".utf8_encode("ñandú")."\r\n";
$mensaje .= "".utf8_decode("ñandú")."\r\n";
$mensaje .= "".htmlentities("ñandú")."\r\n";
$mensaje .= "".htmlspecialchars("ñandú")."\r\n";

mail($para, utf8_decode($asunto),$mensaje,$header);

y ve cual llega bien.

cuéntanos.
GRACIAS RobinHead!!!!! ME FUNCIONÓÓÓ POR FIN!!!!!
Puse las líneas que me indicaste y llegaron las 4 líneas, pero la última estaba perfecta,
con ñ y tilde. Por lo visto, funcionó el "htmlspecialchars".
Lo que hice a continuación fue eliminar la palabra "ñandú" de esa línea del código para probar si funcionaba con cualquier otra palabra en el cuerpo del mensaje y me funcionó.

Espero que esto también pueda servirle a alguien que tenga el mismo problema.
Saludos!

Etiquetas: Ninguno
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 01:11.