session_set_cookie_params
session_start
Session Functions
PHP Manual

# session_set_save_handler

(PHP 4, PHP 5)

session_set_save_handler — Establece unas funciones para el almacenamiento de los datos de la sesión a nivel de usuario

### Descripción

bool session_set_save_handler ( string `$abrir`, string `$cerrar`, string `$leer`, string `$escribir`, string `$destruir`, string `$gc` )

session_set_save_handler() establece las funciones que se utilizan a nivel de usuario para el almacenamiento y recuperación de los datos asociados a una sesión. Es lo más útil cuando se prefiere utilizar otro método de almacenamiento distinto del proporcionaddo por las sesiones de PHP. p.ej. Almacenar los datos de la sesión en una base de datos local. Devuelve `TRUE` si todo se llevó a cabo correctamente, `FALSE` en caso de fallo.

> Note: Debe cambiar la opción `session.save_handler` en la configuración a `user` en su archivo php.ini para que session_set_save_handler() tenga efecto.

> Note: El manejador "escribir" no se ejecuta hasta que se cierra la salida. Por ello, la salida de las sentencias que coloquemos en el manejador "escribir" para el depurado nunca será enviadas al navegador. Si se necesita producir una salida para el depurado, se sugiere que la salida se produzca en un archivo.

El siguiente ejemplo proporciona almacenamiento de las sesiones basado en archivos de forma similar al manejador de sesiones por defecto de PHP `files` . Este ejemplo puede ser extendido fácilmente para cubrir el almacenamiento en bases de datos usando su motor de soporte de bases de datos de PHP favorito.

La función de lectura debe devolver siempre una cadena para que el manejador de escritura funcione como se espera. Devuelva una cadena vacía si no hay ningún dato a leer. Los valores devueltos de otros manejadores son convertidos a una expresión booleana. TRUE si todo ha ido correctamente, FALSE si ha habido algún problema.

Example #1 Ejemplo de session_set_save_handler()

`<?php
function abrir ($save_path, $session_name) {
global $sess_save_path, $sess_session_name;
$sess_save_path = $save_path;
$sess_session_name = $session_name;
return(true);
}
function cerrar() {
return(true);
}
function leer ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "r")) {
$sess_data = fread($fp, filesize($sess_file));
return($sess_data);
} else {
return(""); // Debe devolver "" aqu&iacute;.
}
}
function escribir ($id, $sess_data) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "w")) {
return(fwrite($fp, $sess_data));
} else {
return(false);
}
}
function destruir ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
return(@unlink($sess_file));
}
/***********************************************
* ATENCI&Oacute;N - Necesitar&aacute; implementar alg&uacute;n *
* tipo de rutinas recolectoras de basura aqu&iacute; *
***********************************************/
function rb ($maxlifetime) {
return true;
}
session_set_save_handler ("abrir", "cerrar", "leer", "escribir", "destruir", "rb");
session_start();
// proceed to use sessions normally
?>`

session_set_cookie_params
session_start
Session Functions
PHP Manual