时间:2021-07-01 10:21:17 帮助过:2人阅读
savePath = $savePath;
//注意:这个一定要写在session_start前面
session_save_path($this->savePath);
session_start();//开启session
if(!is_dir($this->savePath))
{
//默认为最大的权限 0777
mkdir($this->savePath) or die('系统错误!');
}
}
//创建session 一共三个参数,
// $name->session名字
// $val->session值
// $time->过期时间,默认为30分钟
public function setSession($name,$val,$time=1800)
{
$this->sessionName = $name;
$this->sessionValue = $val;
$this->time = $time;
if(!isset($_SESSION[$this->sessionName]))
{
if(is_array($this->sessionValue))
{
foreach($this->sessionValue as $key=>$val)
{
$_SESSION[$this->sessionName][$key] = $val;
}
}
else
{
$_SESSION[$this->sessionName]['val'] = $this->sessionValue;
}
$_SESSION[$this->sessionName]["startTime"] = time();
}
//这时候说明session已经存在,那么我们判断他是否过期,如果过期,删除session
else if(isset($_SESSION[$this->sessionName]["startTime"]) && time()-$_SESSION[$this->sessionName]['startTime']>=$this->time)
{
unset($_SESSION[$this->sessionName]);
}
}
}
?>
通过这个类我们可以达到几个目的: 1.我们可以明确的控制session的过期时间. 2.对应上面的第二个问题,我之前做用户退出登陆的时候通常这样写 session_destroy();或者写成unset($_SESSION);殊不知这样就把所有的session都清除了,所以我们会遇到前面一个用户退出之后,我们自己的session也被删除了. 3.用户不会无缘无故的掉线了,因为对我们来说每个步骤现在都是透明的了.
http://www.bkjia.com/PHPjc/1074128.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1074128.htmlTechArticlephp 严格控制session的过期时间 工作过一段时间,相信大家一定也碰到过一个问题: 1.前台用户不知道怎么的就自动掉线了. 2.后台退出登陆之后...