<?php
/**
* Classe de controle da sessão do cliente com a aplicação
* WEB.
* @author Carlos Alberto Junior
* @package modulos.
*/
class SessionManager{
private $id;
private $login;
private $lastAction;
private $maxInactiveTime = 300;
function SessionManager(){
$this->lastAction = null;
}
/**
* Registra uma sessão para o usuario da aplicação.
*
* @param Integer $id codigo de referencia do usuario.
* @param String $login nome de usuario.
*/
public function registerSession($id, $login){
$this->id = base64_encode($id);
$this->login = base64_encode($login);
$this->lastAction = date("Y-n-j H:i:s");
$_SESSION['id'] = $this->getSessionId();
$_SESSION['userLogin'] = $this->getUserLogin();
$_SESSION['lastAction'] = $this->getLastAction();
}
/**
* Verifica a validade de uma sessão do usuario.
*
* @return Header login.php caso falhe.
*/
public function isValidSession(){
if(!isset($_SESSION['id'])|| !isset($_SESSION['userLogin'])){
header("Location: login.php?event=DENIED");
}
if(!$this->isInativo( $_SESSION['lastAction'])){
header("Location: login.php?event=TIMEOUT");
}
return true;
}
private function isInativo($lastAction){
$agora = date("Y-n-j H:i:s");
$diferenca = (strtotime($agora) - strtotime($lastAction));
if($diferenca >= 300){
return false;
}
else{
$_SESSION['lastAction'] = $agora;
return true;
}
}
public function destroiSession(){
session_destroy();
}
/**
* Retorna o id do usuario criptogrado em base64.
* @return String id
*/
public function getSessionId(){
return $this->id;
}
/**
* Retorna o nome de usuario criptogrado em base64.
* @return String userLogin
*/
public function getUserLogin(){
return $this->login;
}
/**
* Retorna o tempo de maximo de inatividade permitido
* pela aplicação em segundos. Valor padrão estabelicido
* é de 300 segundos ou 3 minutos.
*
* @return Integer maxInactiveTime
*/
public function getMaxInactiveTime(){
return $this->maxInactiveTime;
}
/**
* Retorna a data da ultima açao feita pelo usuario autenticado
* na sessão corrente.
*
* @return Date lastAction
*/
public function getLastAction(){
return $this->lastAction;
}
}
?>
没有合适的资源?快使用搜索试试~ 我知道了~
Managing Session in class (php) is lazy and easy.
共1个文件
php:1个
需积分: 0 5 下载量 65 浏览量
2009-01-15
13:01:29
上传
评论
收藏 1KB ZIP 举报
温馨提示
Managing Session in class (php) is lazy and easy.
资源推荐
资源详情
资源评论
收起资源包目录
sessionmanagerimplem-2008-05-07.zip (1个子文件)
Uirapuru
modulos
SessionManager.class.php 2KB
共 1 条
- 1
资源评论
snakecyan
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功