Ciao a tutti,
ho una classe che mi gestisce la sessioni; prima di session_start() ho aggiunto due linee di codice che dovrebbero settarmi il tempo della durata della sessione, ho provato a a settarla a 60 secondi ma, nonostante siano passati 60 secondi, la sessione rimane attiva, in che cosa sbaglio?
Ho un host pubblico su server Linux.
Codice PHP:
ini_set('session.gc_maxlifetime', 60);
session_set_cookie_params(60);
session_start();
...senza le prime due linee le sessioni comunque funzionano ma sono eterne, fino a quando non chiudo il navigatore, e lo sono anche con quelle due linee di codice aggiunto!
la classe completa è questa:
Codice PHP:
class Sesion implements IAccion {
const NIVELUSUARIO="nivelUsuario";
const PAGINAPEDIDA="paginaPedida";
const POST="post";
const ALIAS="alias";
const IDUSUARIO="idusuario";
const CERCA="cerca";
private static $activa=FALSE;
public static function start(){
if(!self::$activa){
ini_set('session.gc_maxlifetime', 60);//linea aggiunta
session_set_cookie_params(60);//linea aggiunta
session_start();
self::$activa=TRUE;
}
}
public static function stop(){
session_destroy();
}
public static function delete($nombre) {
self::start();
if(self::existe($nombre)){unset($_SESSION[$nombre]);return TRUE;}else{return FALSE;}
}
public static function existe($nombre) {
self::start();
if(isset($_SESSION[$nombre])){return TRUE;}else{return FALSE;}
}
public static function get($nombre) {
self::start();
if(self::existe($nombre)){return $_SESSION[$nombre];} else {return FALSE;}
}
public static function set($nombre,$valor) {
self::start();
$_SESSION[$nombre]=$valor;
}
}
Grazie,
Roberto