Archivos Mensuales: abril 2005

Cuidado con el $_SERVER[‘HTTP_REFERER’]

Inauguro una serie de posts en los que iré explicando algunos consejos utiles para PHP que he ido aprendiendo con el tiempo.

En esta ocasión, os llamaré la atención sobre el uso indiscriminado que muchos programadores nóveles de PHP hacen de la variable de servidor $_SERVER[‘HTTP_REFERER’].
Muchos la utilizan (yo hace tiempo tambien lo hacía) para generar enlaces de “Volver atrás”, para redireccionar a la pagina de origen despues de la ejecución de un script, etc. El problema radica en que esta variable no siempre está disponible, ya sea por que el navegador no la envie, este siendo filtrada/bloqueada por el cortafuegos del usuario, u otras posibles causas. De hecho, en la manual oficial de PHP ya lo advierten:

… Este valor es definido por el agente de usuario. No todos los agentes de usuario lo definen, y algunos proveen la capacidad de modificar HTTP_REFERER como una característica del software. En resumen, no se puede confiar realmente en este valor…

Como consecuencia tenemos enlaces que no llevan a ningun sitio, redirecciones fallidas y otros errores derivados de su uso.
Visto todo esto, solo me queda recomendaros que no useis esta variable, o en cualquier caso programeis una función que compruebe su valor antes de usarla.

Anuncios

Surtido de enlaces (III)

¿Como transportariais de manera segura los millones que se generan al día en un gran parque de atracciones? La respuesta es más sencilla de lo que parece.

Quizas podríais haberle preguntado directamente a Google.

And the oscar goes to… (vía Isopixel y otros).

¿Que es Ajax? (y no, no es una marca de estropajos). Como bien comentan en html life, somos Fashion Victims del desarrollo web.

Lecciones de chino y japonés en vuestros escritorios: A Kanji a day.

A donde me lleve el viento

No os sucede de vez en cuando que os quedais sin idea de cual será vuestra siguiente página a visitar. Pues eso no volverá a ser un problema. En esta web tenies un montón de enlaces a generadores de enlaces aleatorios.

Me ha llamado en especial la atención el Random Wikipedia. Podeis arrastrar ese enlace a vuestra barra de marcadores/favoritos para que cada vez que le deis os salga un articulo diferente de la Wikipedia. Muy entretenido 🙂

Actualización:
También es curioso la página WebCollage, que genera una composición a partir de imagenes aleatorias obtenidas de diversas webs.

WordPress Pingback Encoding Fix

(Entrada en inglés para que la pueda leer más gente. Si alguien no la entiende que lo comente y se la traduzco.)

WordPress v1.5 fixes the trackback encoding problem between blogs with distinct charsets, but doesn’t fix the same problem with pingbacks.
Here you have a “xmlrpc.php” file hack that solves that problem: wordpress_pingback_encoding_fix.zip
Unzip and upload the file to your blog main folder, overwriting the old one.

Updated:
I have setup two blogs with distinct charset encoding. You can make your pingback tests on any of their posts:
WPUTF (WordPress Blog with UTF-8 encoding)
WPISO (WordPress Blog with ISO-8859-1 encoding)

WordPress Trackback Encoding Fix

Las versiones antiguas de WordPress muestras caracteres extraños (“chinitos” como los llama HighToro) en los trackbacks procedentes de webs con otra codificación (UTF-8, ISO-8859-1, ISO-8859-15, etc.) diferente a la propia.
Basandome en la versión 1.5 que ya corrige el problema, he realizado un hack del archivo “wp-trackback.php” para los que como yo todavia no se han actualizado a la nueva versión (ya sea por pereza, falta de tiempo, etc.).

Podeis descargar el fichero en cuestión comprimido en zip de aquí: wp-trackback_encode_fix.zip
Solo teneis que descomprimirlo y subir el archivo “wp-trackback.php” al directorio principal de vuestro blog, sobreescribiendo el antiguo.

Lo he probado en todas las version de 1.2.X de WordPress y haciendo trackbacks de un blog con codificación UTF-8 a otro con ISO-8859-1 y me ha funcionado bien. Si lo probais comentarme que tal os va. Yo cuando tenga un rato le pediré a algun bloguer japones que me haga un trackback a ver si rula bien.