lunes, septiembre 11, 2006

Ver código fuente seleccionado

En mi trabajo diario me veo en la obligación de pasar campos que serán usados en consultas SQL. Recientemente tuve un error en el envío de un parámetro acentuado, pensé que sería el típico problema de htmlentities() o htmlspecialchars(), pero mi código era correcto; entonces, ¿por qué la consulta no funcionaba bien? Enervado por tal disfunción ilógica, decidí realizar pruebas directamente con la sentencia SQL, imprimiéndola en la página HTML y luego copiando y pegando la consulta para ver si arrojaba los resultados esperados. Mi sorpresa llegó cuando las filas obtenidas eran las que debían ser.

Entonces caí en cuenta de un pequeño detalle: el navegador Mozilla Firefox, del que soy fan acérrimo, tiene un menú contextual que en caso de haber seleccionado texto (o cualquier cosa) con el ratón permite mostrar el código HTML que lo ha generado, el práctico 'Ver código fuente seleccionado'. Esa opción era la que estaba usando para ver la sentencia SQL y ejecutarla independientemente y esa era la raíz del problema, ya que dentro de la cadena que formaba la consulta había una palabra con tilde. Firefox no funciona de la misma manera cuando deseamos ver el código fuente de una página completa o un extracto de la misma. Ejemplificando, supongamos el siguiente extracto de una página HTML.
<body>

B&eacute;same mi brillante culo met&aacute;lico, cacho carne.

</body>
El resultado en el navegador será el siguiente.
Bésame mi brillante culo metálico, cacho carne.
Ahora, si con el ratón seleccionamos la palabra 'Bésame' o ' metálico' y elegimos 'Ver código fuente seleccionado' del menú contextual obtendremos 'Bésame mi brillante culo metálico, cacho carne.'; en cambio, su vamos al menú 'Ver' -> 'Código fuente de la página' (o pulsamos Ctrl. + U) se nos mostrará correctamente 'B&eacute;same mi brillante culo met&aacute;lico, cacho carne.', puede parecer una sutileza insignificante, pero personalmente me ha costado un quebradero de cabeza que puede evitarse.

Desconozco si los desarrolladores de Firefox están al tanto de estas características, pero en mi actual versión 1.5.0.6 el problema continúa.

No hay comentarios: