Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: FeArX en 1 Julio 2008, 17:41 pm



Título: htmlentities en <option> no funciona
Publicado por: FeArX en 1 Julio 2008, 17:41 pm
Hola, bueno, tengo el siguiente problema, una consulta en php que me trae valores de la base de dato

pero en la parte donde tengo el for para crear los option de un select
Código
  1. <select>
  2. <?php for($i=0;$i<$cantFilas;$i++)
  3.    echo '<option value="'.$row[id].'">'.htmlentities($row[nombre]." ".$row[apellido]).'</option>';
  4. ?>
  5. </select>

si por ejemplo hay una persona que se llame: "Cándido Ñañito" me viene escrito en el navegador: "C&aacute;ndido &Ntilde;a&ntilde;ito", entonces mi pregunta es como puedo hacer para que no me salga así.

Agradeciendo de antemano y esperando una pronta respuesta

PD: si no le coloco el htmlentities, me sale un signo de interrogación en cada letra que no consiga.


Título: Re: htmlentities en <option> no funciona
Publicado por: дٳŦ٭ en 1 Julio 2008, 20:32 pm

PD: si no le coloco el htmlentities, me sale un signo de interrogación en cada letra que no consiga.

Revisa la codificación de tu html en la cabecera.

Saludos


Título: Re: htmlentities en <option> no funciona
Publicado por: FeArX en 1 Julio 2008, 20:57 pm
Gracias por la pronta respuesta, los headers están bien al principio del archivo está:

Código
  1. <?php
  2. header("Content-Type: text/html; charset=ISO-8859-1");
  3. include 'sesion.php';
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  9.  

ya probé quitando el header del php, y el header del meta y sigue el mismo problema, el "include 'sesion.php';" estan las validaciones de usuario asi que no creo que influya en el header. Alguna otra idea?

Agradeciendo de antemano y esperando una pronta respuesta


Título: Re: htmlentities en <option> no funciona
Publicado por: Hans el Topo en 1 Julio 2008, 21:08 pm
no se para que conviertes los caracteres "especiales"

utiliza http://es.php.net/manual/es/function.html-entity-decode.php para decodificar los caracteres


si persiste el problema debe ser de codificaciones, ya sea en el header o en la base de datos


Título: Re: htmlentities en <option> no funciona
Publicado por: FeArX en 1 Julio 2008, 21:34 pm
bueno, creo que solucioné, utilizé como codificación
header("Content-Type: text/html; charset=iso-8859-1"); y me quitó el dolor de cabeza dentro de los option y afuera de los option deje igual el htmlentities donde estaba. Gracias por la ayuda prestada  ;D