At this point i am interested to see other techniques on handling session timeouts.
<?php
class SESSION_handler{
public static $gc_maxlifetime;
public static $cookie_lifetime;
public $time_at_last_session;
function __construct(){
self::$gc_maxlifetime = ini_get('session.gc_maxlifetime');
self::$cookie_lifetime = ini_get('session.cookie_lifetime');
if(session_status() == PHP_SESSION_NONE) {
session_start();
}
}
public function get($session_key){
if(session_status() == PHP_SESSION_NONE) {
if(!empty($_SESSION[$session_key])){
$this->time_at_last_session = time();
return $_SESSION[$session_key];
}
}
return undefined;
}
public function set($session_key, $session_value){
if(session_status() == PHP_SESSION_NONE) {
$this->time_at_last_session = time();
$_SESSION[$session_key] = $session_value;
return $_SESSION[$session_key];
}
return undefined;
}
public function session_expired(){
if(
time() - $this->time_at_last_session >= self::$gc_maxlifetime ||
session_status() == PHP_SESSION_NONE ||
!isset($_COOKIE[session_name()])
){
return true;
}
return false;
}
}
?>
<?php
$SESSION = new SESSION_handler();
if($SESSION.session_expired->session_expired()){
echo "true";
}else{
echo "false";
}
?>