Blog de Gonzalo

SESIONES EN SERVIDORES BALANCEADOS

Cuando se desarrolla una aplicación web, en este caso php, y se tiene dicha aplicación balanceada y hay sesiones hay que tener en cuenta la persistencia de dichas sesiones y para conseguirlo la manera correcta es tener una base de datos no balanceada. Y sobre todo usar la función session_set_save_handler(). A continuación os pongo un ejemplo.

   function sess_open($sess_path, $sess_name) {
print "Session opened";
print "Sess_path: $sess_path";
print "Sess_name: $sess_name";
return true;
}
function sess_close() {
print "Session closed";
return true;
}
function sess_read($sess_id) {
print "Session read";
print "Sess_ID: $sess_id";
return '';
}
function sess_write($sess_id, $data) {
print "Session value written";
print "Sess_ID: $sess_id";
print "Data: $data";
return true;
}
function sess_destroy($sess_id) {
print "Session destroy called.";
return true;
}
function sess_gc($sess_maxlifetime) {
print "Session garbage collection called.";
print "Sess_maxlifetime: $sess_maxlifetime";
return true;
}
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
session_start();
$_SESSION['foo'] = "bar";
print "Some text";
$_SESSION['baz'] = "wombat";

Nunca he tenido que programarlo en ningún proyecto. Pero tiene pinta de ser interesante, sobre todo en proyectos que están balanceados.

Compartir en twitter