sess.php
来自「极限OA开源系统」· PHP 代码 · 共 110 行
PHP
110 行
<?php
if(!defined('KIN_UNION')){die("Hacking attempt");}
/* if database time and system time is difference is greater than this, then give warning */
define('ET_SESSION_SYNCH_SECS',60);
define('ET_SESSION_OPTIMIZE',1);
$ET_SESS_LIFE = ini_get('session.gc_maxlifetime');
if ($ET_SESS_LIFE <= 1) {
$ET_SESS_LIFE=1440;
}
$ET_SESSION_CRC = false;
if (empty($SESS_TABLE)){
$SESS_TABLE = $tablepre.'sessions';
}
function et_sess_open($save_path, $session_name,$persist=true) {
GLOBAL $db;
if (isset($db)) return true;
else die('session db error!');
}
function et_sess_close() {
global $db;
if ($db) $db->Close();
return true;
}
function et_sess_read($key) {
global $db,$SESS_TABLE,$ET_SESSION_CRC;
$qry = "SELECT data FROM $SESS_TABLE WHERE sesskey = '$key' AND expiry > " . time();
$qid = $db->query($qry);
if (list($v) = $db->fetch_row($qid)) {
$ET_SESSION_CRC = $key;
return $v;
}
return '';
}
function et_sess_write($key, $val)
{
global $db, $ET_SESS_LIFE, $SESS_TABLE,$ET_SESSION_CRC,$etext;
$expiry = time() + $ET_SESS_LIFE;
$value = addslashes($val);
if ($ET_SESSION_CRC !== false && $ET_SESSION_CRC == $key) {
if($etext) $condi = ",username='$etext[username]',gid='$etext[gid]',ip='$etext[ip]',hidden='$etext[hidden]'";
$qry = "UPDATE $SESS_TABLE SET expiry='$expiry',data='$value'$condi WHERE sesskey='$key' AND expiry >= " . time();
$rs = $db->query($qry);
return true;
}
if($etext) {
$qry = "INSERT INTO $SESS_TABLE (sesskey,expiry,data,username,gid,ip,hidden)
values ('$key', '$expiry', '$value','$etext[username]','$etext[gid]','$etext[ip]','$etext[hidden]')";
}else {
$qry = "INSERT INTO $SESS_TABLE (sesskey,expiry,data) VALUES ('$key', '$expiry', '$value')";
}
$qid = $db->query($qry,1);
return $qid;
}
function et_sess_destroy($key)
{
global $db, $SESS_TABLE;
$qry = "DELETE FROM $SESS_TABLE WHERE sesskey = '$key'";
$rs = $db->query($qry);
return $rs ? true : false;
}
function et_sess_gc($maxlifetime)
{
global $ET_SESS_DEBUG, $db, $SESS_TABLE;
$qry = "DELETE FROM $SESS_TABLE WHERE expiry < " . time();
$db->query($qry);
// suggested by Cameron, "GaM3R" <gamr@outworld.cx>
if (defined('ET_SESSION_OPTIMIZE')) {
$opt_qry = 'OPTIMIZE TABLE '.$SESS_TABLE;
$db->query($opt_qry);
}
return true;
}
session_module_name('user');
session_set_save_handler(
"et_sess_open",
"et_sess_close",
"et_sess_read",
"et_sess_write",
"et_sess_destroy",
"et_sess_gc");
session_start();
et_sess_gc($maxlifetime);
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?