时间: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.后台退出登陆之后...