$session_life) { $this->terminaSesion(); } }else $this->terminaSesion(); $_SESSION['timeout'] = time(); if(!isset($_SESSION['usuario_id']) || $_SESSION['usuario_id'] == '') $this->terminaSesion(); //existe id en sesión? if(array_key_exists('usuario_id', $_SESSION) && is_numeric($_SESSION['usuario_id']) && $_SESSION['usuario_id'] > 0){ if(is_int($submenu)){ //valida permisos $stmt = $pdo->prepare('Select * from cidit_fs_validapermisos(:usr, :sub)');//devuelve: permiso, edicion $stmt->bindParam(':usr', $_SESSION['usuario_id']); $stmt->bindParam(':sub', $submenu); if(!$stmt->execute()){ $this->hasError = true; $this->error = $stmt->errorInfo(); }else{ $rs = $stmt->fetch(); $stmt->closeCursor(); $stmt = null; $this->acceso = (bool) $rs['permiso']; $this->edicion = (bool) $rs['edicion']; $rs = null; } } else { $this->hasError = true; $this->error = 'Dato no válido en validación de permisos'; } } else{ $this->error = 'No existe la llave en sesión'; $this->hasError = true; $this->acceso = false; $this->edicion = false; } if($this->hasError){ $this->acceso = false; $this->edicion = false; } } function tieneAcceso(){ return $this->acceso; } function puedeEditar(){ return $this->acceso && $this->edicion; } function tieneError(){ return $this->hasError; } function getError(){ return $this->error; } function terminaSesion(){ $_SESSION = array(); session_destroy(); //$pag = $this->getFirstDirectory($_SERVER['PHP_SELF'])."/salir.php?expired=1"; $pag = $_SERVER['SERVER_NAME'] . 'salir.php?expired=1'; //header('Location: http://' . $pag); header('Location: salir.php?expired=1'); exit(); } public static function salirPagina(){ $_SESSION = array(); session_destroy(); header('Location: salir.php'); exit(); } }