PHP 使用MySQL管理Session的回调函数详解
<?php
class mysession extends dbsql {
/**
* __construct()
*/
public function __construct() {
parent::__construct ();
}
/**
* open()
*
* @param <string> $ssavepath
* @param <string>$ssessionnames
*
* @return <boolean> true
*/
public function open($ssavepath, $ssessionname) {
return true;
}
/**
* close()
*/
public function close() {
return true;
}
/**
* read()
*
* @param <string> $ssessionid
* @return <string> session data or null on error...
*/
public function read($ssessionid) {
$ssessionid = addslashes(trim($ssessionid));
$ssql = "select * from tb_session where f_sessionid = '{$ssessionid}'";
//echo $ssql;
if(false != ($result = $this->select($ssql))) {
//var_dump($result[0]['f_sessiondata']);
return $result[0]['f_sessiondata'];
} else {
return '';
}
}
/**
* write()
*
* @param <string> $sessionid
* @param <string> $ssessiondata
*
* @return <boolean> true or false
*/
public function write($ssessionid, $ssessiondata) {
$arrsession = array();
$arrsession['f_sessionid'] = addslashes(trim($ssessionid));
$arrsession['f_sessiondata'] = addslashes($ssessiondata);
$arrsession['f_sessioncreated'] = date("y-m-d h:i:s");
$arrsession['f_sessionupdated'] = date("y-m-d h:i:s", time() + 1440);
// 新session及更新的session
if (false != ($result = $this->insertdata('tb_session', $arrsession))) {
return true;
} else {
$arrupdatesession = array();
$arrupdatesession['f_sessiondata'] = addslashes($ssessiondata);
$arrupdatesession['f_sessionupdated'] = date("y-m-d h:i:s", time() + 1440);
if (false != ($result = $this->updatedata('tb_session', "'".addslashes($ssessionid)."'", 'f_sessionid', $arrupdatesession))) {
return true;
} else {
return false;
}
}
}
/**
* destroy()
*
* @param <string> $ssessionid
* @return <boolean> true
*/
public function destroy($ssessionid) {
$ssessionid = addslashes(trim($ssessionid));
$this->deldata($ssessionid, 'f_sessionid', 'tb_session');
return true;
}
/**
* gc
*
* @param <int> $nmaxlifetime seconds
*
* @return <boolean> true
*/
public function gc($nmaxlifetime) {
$dtexpiredtime = date("y-m-d h:i:s", time() - $nmaxlifetime);
$ssql = "delete from tb_session where f_sessionupdated < {$dtexpiredtime}";
//echo $ssql;
$this->delete($ssql);
return true;
}
/**
* __desctruct()
*
*/
function __destruct() {
// ensure session data is written out before classes are destroyed
// (see http://bugs.php.net/bug.php?id=33772 for details)
@session_write_close();
} // __destruct
}
?>
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
-
-
七种PHP开发环境搭建工具
对于php开发小白来说搭建一个php运行环境就是一道坎!因为要做php开发,搭建一个能够运行php网站的服务器环境是第一步,传统的php环境软件非常复杂,好在很...
[阅读全文]
-
PHP实现抽奖功能实例代码
在项目开发中经常会遇到花钱抽奖类型的需求。但是老板总是担心用户用小钱抽到大奖。这样会导致项目亏损。下边这段代码可以有效制止抽奖项目亏钱。个人奖池:语言:thin...
[阅读全文]
-
-
-
PHP 超级全局变量相关总结
超级全局变量在php 4.1.0之后被启用, 是php系统中自带的变量,在一个脚本的全部作用域中都可用。php 超级全局变量php中预定义了几个超级全局变量(s...
[阅读全文]
-
-
-
PHP实现递归的三种方法
递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则会无限调用下去。一般来说,递归函数可利用全局变量,引用,静态变...
[阅读全文]
网友评论