PHP封装的数据库保存session功能类
本文实例讲述了PHP封装的数据库保存session功能类。分享给大家供大家参考,具体如下:
PHP用数据库保存session类:
<?php classSafeSessionHandlerimplementsSessionHandlerInterface{ public$save_path; public$session_name; public$table; publicfunction__construct(){ $this->table=newTable("safe_session"); } privatefunctionsession_id_parse($session_id){ $time=hexdec(substr($session_id,0,8)); $skey=substr($session_id,8); returnarray($time,$skey); } publicfunctionclose(){ loginfo("close:"); returntrue; } publicfunctioncreate_sid(){ loginfo("create_sid:"); $time=time(); $skey=""; $char="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; for($i=0;$i<52;$i++){ $skey.=$char{mt_rand(0,61)}; } $session=array( "time"=>$time, "skey"=>$skey, "sval"=>"", ); $this->table->insert($session); returndechex($time).$skey; } publicfunctiondestroy($session_id){ loginfo("destroy:%s",$session_id); list($time,$skey)=$this->session_id_parse($session_id); $this->table->where("time=?",$time)->where("skey=?",$skey)->delete(); returntrue; } publicfunctiongc($maxlifetime){ loginfo("gc:%s",$maxlifetime); $this->table->where("time<?",time()-86400*30)->delete(); returntrue; } publicfunctionopen($save_path,$session_name){ loginfo("open:%s,%s",$save_path,$session_name); $this->save_path=$save_path; $this->session_name=$session_name; returntrue; } publicfunctionread($session_id){ loginfo("read:%s",$session_id); list($time,$skey)=$this->session_id_parse($session_id); $row=$this->table->where("time=?",$time)->where("skey=?",$skey)->select()->fetch(); if(empty($row)){ return""; } return$row["sval"]; } publicfunctionwrite($session_id,$session_data){ loginfo("write:%s,%s",$session_id,$session_data); $session=array("sval"=>$session_data,); list($time,$skey)=$this->session_id_parse($session_id); $this->table->where("time=?",$time)->where("skey=?",$skey)->update($session); returntrue; } }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。