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