Código PHP:
<?
Include "manejoSesiones.class.php";
// estimo que el LINK con el que creas la coneccion a MySQL es $con
$mi_sesion = new manejoSesiones();
$mi_sesion->tiempoExpirado=1800; // 1800 segundos = 1 hora
$mi_sesion->abrirSesion (??????); // aca ya no entiendo........
?>
SUGIERO pasen este post a PHP ORIENTADO A OBJETOS
Por que no miras en ese mismo foro donde dicen como se implementa ?
Clase:
Código PHP:
<?php
class manejoSesiones {
var $tiempoExpirado;
var $tablaSesiones = "sesiones";
function abrirSesion($savePath, $sessionID) {
global $con;
return true;
}
function cerrarSesion() {
global $con;
$this->tiempoExpirado = ini_get('session.gc_maxlifetime');
$this->recolector($this->tiempoExpirado);
return true;
}
function leerSesion($sessionID) {
global $con;
$sql = "SELECT * FROM ".$this->tablaSesiones." WHERE sessionID = '$sessionID'";
$result = mysql_query($sql);
if(!$result) { return false; }
$num = mysql_num_rows($result);
if($num > 0) {
$data = mysql_fetch_assoc($result);
return $data['sessionData'];
}else{
return false;
}
}
function escribirSesion($sessionID, $sessionData) {
global $con;
$sql = "UPDATE ".$this->tablaSesiones." SET sessionData = '$sessionData' WHERE sessionID = '$sessionID'";
$result = mysql_query($sql);
if(mysql_affected_rows()) {
return true;
}else{
$sql = "INSERT INTO ".$this->tablaSesiones." (sessionID, sessionStart, sessionData) VALUES ('$sessionID','".time()."','$sessionData')";
$result = mysql_query($sql);
return (!$result) ? false : true ;
}
}
function borrarSesion($sessionID) {
global $con;
$sql = "DELETE FROM ".$this->tablaSesiones." WHERE sessionID = '$sessionID'";
$res = mysql_query($sql);
return (!$res) ? false : true ;
}
function recolector($tiempo) {
global $con;
$sql = "DELETE FROM ".$this->tablaSesiones." WHERE ".time()." > (sessionStart + ".$tiempo.")";
$res = mysql_query($sql);
return (!$res) ? false : true ;
}
}
?>
Código PHP:
<?php
//ini_set()
ini_set('session.gc_maxlifetime', 3600);
ini_set('session.cookie_lifetime', 3600);
//Conexion a la BD
$con = @mysql_connect($dbHost, $dbUser, $dbPass);
@mysql_select_db($dbName, $con);
include("includes/manejoSesiones.class.php");
//Manejo de sesiones (ojala y sirva o.oU)
$sesionOA = new manejoSesiones();
session_set_save_handler(array(&$sesionOA,'abrirSesion'),array(&$sesionOA,'cerrarSesion'),array(&$sesionOA,'leerSesion'),array(&$sesionOA,'escribirSesion'),array(&$sesionOA,'borrarSesion'),array(&$sesionOA,'recolector'));
session_start();
?>