Maison >développement back-end >tutoriel php >php 严格控制session的过期时间_PHP教程
<?php class Session{ private $savePath;//存储session的路径,必须是绝对路径 private $time;//存储session的过期时间,单位是秒 private $sessionName;//session的名字 private $sessionValue;//session的值 public function __construct($savePath) { //将session存入指定的目录 $this->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]); } } } ?>