session_set_save_handler
$SESSION_LIFE = get_cfg_var("session.gc_maxlifetime");
//$SESSION_LIFE = 1440;
function sess_open ($save_path, $session_name)
{
global $sess_save_path, $sess_session_name;
$sess_save_path = $save_path;
$sess_session_name = $session_name;
return(true);
}
function sess_close()
{
return(true);
}
function sess_read ($key)
{
global $sess_save_path, $sess_session_name, $SESSION_LIFE, $sqlca;
$query = "SELECT session_value FROM ts_sessions WHERE session_key = '$key' AND session_expiry > " . time();
//echo "query='$query'<br>";
$sqlca->query($query);
if ($sqlca->next_record())
{
return $sqlca->f(0);
}
else
{
return("");
}
}
function sess_write ($key, $val)
{
global $sess_save_path, $sess_session_name, $SESSION_LIFE, $sqlca;
$expiry = time() + $SESSION_LIFE;
//$value = addslashes($val);
$value = $val;
$sqlca->query("SELECT session_key,session_expiry FROM ts_sessions WHERE session_key='$key'");
if($sqlca->next_record())
{
$query = "UPDATE ts_sessions SET session_value = '$value', session_expiry = $expiry WHERE session_key = '$key' AND session_expiry > " . time();
}
else
{
$query = "INSERT ts_sessions VALUES('$key', '$value', $expiry)";
}
//echo "query='$query'<br>";
$sqlca->query($query);
return $sqlca->Query_ID;
}
function sess_update_time ($key)
{
global $SESSION_LIFE, $sqlca;
$expiry = time() + $SESSION_LIFE;
$query = "UPDATE ts_sessions SET session_expiry = $expiry WHERE session_key = '$key'";
return $sqlca->query($query);
}
function sess_destroy ($key)
{
global $sqlca;
$query = "DELETE FROM ts_sessions WHERE session_key = '$key'";
$sqlca->query($query);
return $sqlca->Query_ID;
}
function sess_gc ($maxlifetime)
{
global $sqlca;
$query = "DELETE FROM ts_sessions WHERE session_expiry < " . time();
$sqlca->query($query);
return $sqlca->Query_ID;
}
session_set_save_handler ("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
session_start();
from http://www.qiuhao.com/PHP10000%5C10276.htm
现在记下,以备日后用到
本文介绍了一种使用PHP自定义session存储处理的方法,通过实现一系列接口函数来完成session的数据读写、更新、销毁及垃圾回收等操作。该方法允许开发者将session数据存储在自定义的位置,例如数据库中。
4172

被折叠的 条评论
为什么被折叠?



