Foros del Web » Programando para Internet » PHP »

Usar utf8_decode

Estas en el tema de Usar utf8_decode en el foro de PHP en Foros del Web. Hola amigos! Recurro al foro porque no soy un experto en PHP, y necesito aplicar el utf8_decode en dos instancias de un formulario para lograr ...
  #1 (permalink)  
Antiguo 02/08/2011, 05:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Usar utf8_decode

Hola amigos!

Recurro al foro porque no soy un experto en PHP, y necesito aplicar el utf8_decode en dos instancias de un formulario para lograr que los textos con caracteres especiales lleguen correctamente.

Ya usé el utf8_decode en otros formularios de mi sitio, observando ejemplos y a haciendo prueba-error, pero en este caso, el PHP me supera y no sé donde aplicarlo.

El codigo del primer campo (correspondiente al nombre del usuario) es el siguiente:

Código PHP:
<td style="text-align:right" width="150"><?php echo $hesklang['name']; ?>: <font class="important">*</font></td>
              <td width="80%"><input type="text" name="name" size="40" maxlength="30" value="<?php if (isset($_SESSION['c_name'])) {echo stripslashes(hesk_input($_SESSION['c_name']));} ?>" /></td>

El codigo del segundo campo (correspondiente al asunto) es el siguiente:

Código PHP:
<td style="text-align:right" width="150"><?php echo $hesklang['subject']; ?>: <font class="important">*</font></td>
              <td width="80%"><input type="text" name="subject" size="40" maxlength="80" value="<?php if (isset($_SESSION['c_subject'])) {echo stripslashes(hesk_input($_SESSION['c_subject']));} ?>" /></td>

Les agradezco de antemano cualquier ayuda!
  #2 (permalink)  
Antiguo 02/08/2011, 05:41
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 8 meses
Puntos: 26
Respuesta: Usar utf8_decode

Como todo manejador de formulario php, las variables del mismo se levantan median POST o GET en el script PHP.
Para usar el utf8_encode, basta con pasarle la string por parámetro:
Código PHP:
Ver original
  1. utf8_encode("canción");
  #3 (permalink)  
Antiguo 02/08/2011, 05:46
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Usar utf8_decode

El tema es que usaste utf8_decode() en formularios por que es para recoger datos, si lo que quieres es mostrar esos datos utiliza utf8_encode() como apunta ramiro_md.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #4 (permalink)  
Antiguo 02/08/2011, 05:52
 
Fecha de Ingreso: febrero-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Usar utf8_decode

Gracias por sus comentarios!

Ok, más allá de usar el encode o el decode, lo que no sé es donde deberia ubicar la sentencia
Cita:
utf8_encode("canción");
dentro de los códigos que les comentaba al inicio.

Esa es mas que nada mi duda.
  #5 (permalink)  
Antiguo 02/08/2011, 05:57
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Usar utf8_decode

La solución la ha comentado ramiro_md, si es un string o una variable, a lo que quieras aplicarle la función.

Código PHP:
... echo utf8_encode($hesklang['name']); ...
// ó 
if (isset($_SESSION['c_name'])) {echo 
tripslashes(hesk_input(utf8_encode($_SESSION['c_name'])));} ... 
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #6 (permalink)  
Antiguo 02/08/2011, 06:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Usar utf8_decode

Muchas gracias Uncontroled_Duck!!

Intenté con las opciones que me pasaste pero no funciona, sigo recibiendo los correos de la siguiente forma:

Cita:
Estimado ñññ,

Su ticket de soporte "ñññ" fue enviado correctamente.
Supongo que hay algo que no estoy logrando resolver, muchas gracias de todos modos.
  #7 (permalink)  
Antiguo 02/08/2011, 07:38
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 8 meses
Puntos: 26
Respuesta: Usar utf8_decode

Por qué no vas debuggeando con "echos" al script ?? antes de mandar el e-mail, imprimí las variables, incluso las que están pasadas a utf8, ahí checkas si va andando...pon el código sino.
  #8 (permalink)  
Antiguo 02/08/2011, 07:44
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Usar utf8_decode

Amigo para enviar correos electrónicos en formato HTML con la función MAIL de PHP es necesario mandar un encabezado indicando el CHARSET que se utilizara... Si este no se especifica entonces este presentara problemas al llegar al destinatario:

$headers .= "Content-type: text/html; charset=UTF-8\r\n";

Espero que esto te ayude con tu problema.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #9 (permalink)  
Antiguo 02/08/2011, 15:07
 
Fecha de Ingreso: febrero-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Usar utf8_decode

Gracias por seguir intentando ayudarme. Como les decia, no soy experto en php, por lo cual les pego el codigo completo de la página y me comentan que puedo hacer.

Lo que me interesa es que se escriba correctamente la informacion de los campos name y subject, que es lo que llega con caracteres extraños en el cuerpo del mail.

El codigo de la pagina pueden verlo en http://lightfarohosting.com/codigo.txt

Cualquier ayuda será bienvenida

Última edición por Txalito; 03/08/2011 a las 06:24

Etiquetas: formulario
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 17:29.