Almacena la sesión del navegador en la BD con PHP

La mayoría de las aplicaciones web usan la sesión para almacenar información que podemos utilizar en todas las páginas que visitemos, así no será necesario pasarla por parámetro como muchas veces se hace (incorrectamente).
Normalmente la sesión se guarda en un fichero en el servidor, lo cual puede ser un problema, ya que si queremos usar varios servidores en cluster, la sesión no estaría disponible si en la siguiente página que visitamos, el servidor que atiende nuestra aplicación no es el mismo. Yo no soy experto en sistemas, pero si el sistema permite session-aware en el balanceo de carga, no nos encontraremos con este problema.
Si nos encontramos con ese problema y es necesario solucionarlo mediante programación, PHP nos permite gestionar las sesiones, indicando el modo de guardar y leer las sesiones. Para ello existe la función session_set_save_handler(), en la cual indicaremos los métodos para abrir, cerrar, leer, escribir, destruir y liberar sesiones.
En el artículo que referenciamos guardan la sesión en la base de datos, para lo cual habrá que crear una tabla que almacene el ID de la sesión, la información y la fecha de expiración. Las acciones de tratamiento de la sesión usarán esta tabla para almacenar y tratar la información de la sesión. Al abrir y cerrar la sesión no se debe hacer nada, leer leerá de la tabla según el ID dado y si no ha expirado, guardar insertará/modificará en la tabla guardando los datos, destruir borrará los datos de la tabla y liberar sesiones borrará de la tabla las sesiones que hayan caducado.
Storing PHP Sessions in a Database
Vía / PHPDeveloper.org

Guía de novedades de PHP 5.2.x

Aunque ya hace tiempo hablamos de las novedades que trae PHP 5.2.x, hoy vamos a mencionar una serie de artículos creados por IBM en la que se nos explica cada una de estas novedades.

Nuevo gestor de memoria

Aunque PHP ya gestiona por nosotros la memoria utilizada en los scripts, no quita que a veces sea necesario gestionar por nuestra cuenta un recurso tan preciado como la memoria.

En versiones anteriores ya podíamos liberar memoria usando la función unset(), pero en esta versión, PHP nos ofrece dos funciones nuevas con las que controlamos el uso de memoria: memory_get_usage() y memory_get_peak_usage(), ambas nos devuelve el uso de memoria, pero con la diferencia de que la segunda nos devuelve el pico de memoria usada y la primera el uso de memoria en ese momento.

Con estas funciones, cuando nos encontremos en un bloque de código que sepamos que gasta mucha memoria, podremos controlar el flujo de la ejecución dependiendo del uso de memoria, así poder evitar problemas de gasto de recursos o evitar errores. Incluso limitar el uso de memoria a scripts, por ejemplo, si queremos obtener en background los feeds de unos blogs para crearnos un planet, podemos evitar que el script utilice mucha memoria y parar cuando haya llegado a un tope.

Nueva extensión de filtro de entrada

Para evitar ataques por parte de usuarios y para mejorar nuestra seguridad, PHP 5.2 incluye dos tipos de filtros para tratar los datos que nos llegan por los formularios de entrada.

Los filtros son de dos tipos uno de tipo sanitizing (desinfectar), el cual elimina caracteres no deseados de un texto y lo devuelve sin estos, y el otro lógico, el cual hace comprobaciones sobre esos textos.

En ambos casos se usa la función filter_var(), pero dependiendo de si se usa el flag FILTER_SANITIZE_STRING o el FILTER_VALIDATE_INT, realizará cualquiera de los dos filtros.

Nueva extensión JSON

Ni que decir tiene que JSON es parte fundamental en las nuevas aplicaciones realizadas con Ajax, por eso PHP incluye dos funciones: json_encode() y json_decode(), la primera transforma datos de PHP en una estructura JSON y la segunda al revés, datos JSON en una matriz de PHP.

Nueva extensión ZIP

El uso de ficheros ZIP, para comprimir ficheros, puede sernos muy útil en muchos casos, ya no solo por comprimir el tamaño de los archivos, sino también porque agrupa en uno solo varios ficheros. La nueva extensión de PHP usa las funciones de la clase Ziparchive para leer y crear ficheros ZIP.

What’s new in PHP V5.2

Ejecuciones multi-hilo en PHP

Algo fuera de lo común, pero que nos puede ser útil alguna vez, es ejecutar en nuestro script PHP, tareas multi-threading.
Aunque PHP no está preparada para la ejecución de threads, el autor del artículo se crea una clase para tratar estas ejecuciones. La simulación de los hilos lo realiza mediante la funcion proc_open(), la cual ejecuta un comando y abre punteros de archivo para entrada/salida.
Uno de los problemas que veo es el tratamiento de errores, que aunque se obtienen mediante el buffer de salida de error, no creo que se tenga un buen control sobre estos.
Multi-threading strategies in PHP
Vía / PHPDeveloper.org

links for 2007-05-03

Las 10 mejores aplicaciones y servicios web gratuitos

Una lista de 10 aplicaciones o servicios web gratuitos que nos pueden ser de gran ayuda:

  • Google Analytics: nos analiza nuestra web y nos ofrece unas estadísticas muy completas.
  • MyBlogLog y BlogCatalog: especial para bloggers, un punto de inicio para darnos a conocer y crear una comunidad alrededor nuestro.
  • HitTail y 103Bees: similares entre sí, nos ofrecen en tiempo real un análisis de las visitas desde buscadores.
  • FeedBurner: maneja nuestros feeds, nos permite llevar un control sobre la gente que accede a ellos, a parte de descargarnos de un tráfico importante para nuestra web o blog.
  • Morgue File: un servicio de almacenamiento para imágenes que se puede usar o para fines comerciales o particulares. Yo casi me quedo con otros servicios de este mismo estilo.
  • OpenAds: servicio de publicidad que podemos instalar en nuestro servidor.
  • La suite de 37Signals: aunque no se trata de una suite para páginas web, sus aplicaciones nos permiten mejorar nuestra productividad: gestor de proyectos, gestor de contactos, chat agrupados y organizador de información y calendario.
  • WordPress: plataforma de blogs más conocida y extendida.
  • Overture Keyword Selector Tool: para SEO más avanzado, nos ofrece una lista de términos y palabras que Yahoo recibe en sus búsquedas.
  • Pew Internet Project: nos ofrece datos y estadísticas sobre el impacto de internet en las familias, comunidades, trabajo y otros grupos.

The Top Ten Free Website Tools and Services

Vía / Digg

links for 2007-05-02

links for 2007-05-01