PHP - sesiones en db mssql

 
Vista:

sesiones en db mssql

Publicado por choty (3 intervenciones) el 03/04/2006 18:58:45
hola alguien me puede ayudar con un script para guardar sesiones en una base mssql, ya que los que he bajado de php.net no funcionan y he tratado de adaptarlos pero sin exito alguno.

aca les dejo el ultimo que estube probando:

function _openSession($savePath, $id){
return TRUE;
}

function _closeSession(){
return TRUE;
}

function _readSession($sessionid){
global $db, $sessionLifetime;

$sessionid = $db->quoteSmart($sessionid);
$time = time();

$sql = "SELECT value FROM sessions WHERE sessionid=$sessionid";
$result = $db->query($sql);
$result->fetchInto($row, DB_FETCHMODE_ASSOC);
if ($row):
return $row[0];
else:
$sql = "INSERT INTO sessions (sessionid, expiry) VALUES ($sessionid, $time)";
$result = $db->query($sql);
return "";
endif;
}

function _writeSession($sessionid, $sessionData){
global $db, $sessionLifetime;

$expiry = time() + $sessionLifetime;
$sessionid = $db->quoteSmart($sessionid);
$sessionData = $db->quoteSmart($sessionData);

//$sql = "UPDATE sessions SET expiry=$expiry, value=$sessionData WHERE sessionid=$sessionid";
$sql = "INSERT INTO sessions (sessionid, expiry, value) VALUES ($sessionid, $expiry, $sessionData)";
$result = $db->query($sql);
//if (!PEAR::isError($result)):
return true;
/* else:
return false;
endif;*/
}

function _destroySession($sessionid){
global $db;

$sessionid = $db->quoteSmart($sessionid);
$sql = "DELETE FROM sessions WHERE sessionid=$sessionid";
$result = $db->query($sql);

if (!PEAR::isError($result)):
if ($db->affectedRows() > 0):
return true;
endif;
endif;

return false;
}

function _gcSession($maxlifetime){
/*global $db;

$time = $db->quoteSmart(time());*/
$sql = "DELETE FROM sessions WHERE expiry < $time";
/* $result = $db->query($sql);

if (PEAR::isError($result)):
return 0;
endif;

return $db->affectedRows();
*/
}

session_set_save_handler("_openSession", "_closeSession", "_readSession", "_writeSession", "_destroySession", "_gcSession");
$sessionLifetime = get_cfg_var("session.gc_maxlifetime");

session_start();

desde ya muchas gracias.

saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:sesiones en db mssql

Publicado por hector (49 intervenciones) el 03/04/2006 19:30:51
saludos

mira yo uso mssql y sesiones pero no entiendo yo uso el php para meter las sesiones a mi base de datos solo leyendo el id de la sesion y la meto a una tabla en donde guardao la sesion con un insert en verdad no entiendo cual es el problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sesiones en db mssql

Publicado por choty (3 intervenciones) el 03/04/2006 21:39:52
hola hector, pasame un ejemplo de como lo haces ... por que tampoco entiendo ...
gracias loco
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sesiones en db mssql

Publicado por hector (49 intervenciones) el 06/04/2006 23:57:15
usa

session_id()

para cachar la identificacion de la sesion
la metes a una variable

o en tu sentencia insert into o update

para asi saber que sesion estan ocupando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar