您好,登錄后才能下訂單哦!
通常,session都是保存在臨時文件里的,但是,要是把它保存在數據庫里,就會給我們帶來很多好處,比如統計在線人數之類的。廢話不說了,看程序:
include("db_mysql.inc");
function open ($save_path, $session_name) {
global $db,$REMOTE_ADDR;
$db->query("delete from Sessions where SessionLast
if($db->query("select * from Sessions where SessionID='".session_id()."'")
&& $arry=$db->fetch_array())
$db->query("update Sessions set SessionLast=NOW() where
SessionID='".session_id()."'");
else $db->query("insert into Sessions set
SessionID='".session_id()."',SessionName='$REMOTE_ADDR',SessionLast='NOW()'"
);
return(true);
}
function close()
return true;
}
function read ($id) {
global $db;
if(!$db->query("select SessionID from Sessions where SessionID='$id'")
|| $db->num_rows()<=0)return false;
$SQL="select SessionData from Sessions where SessionID='$id'";
$db->query($SQL);
list($sess_data)=$db->fetch_row();
return($sess_data);
}
function write ($id, $sess_data) {
global $db;
if(!$db->query("select SessionID from Sessions where SessionID='$id'") ||
$db->num_rows()<=0)return false;
if($db->query("update Sessions set
SessionData='$sess_data',SessionLast=NOW() where SessionID='$id'"))
return true;
else return false;
}
function destroy ($id) {
global $db;
$db->query("delete from Sessions where SessionID='$id'");
}
function gc ($maxlifetime) {
return true;
}
session_set_save_handler ("open", "close", "read", "write", "destroy","gc");
session_start();
?>
注:
數據表:Sessions
CREATE TABLE Sessions (
SessionID varchar(50) NOT NULL,
SessionName varchar(50) NOT NULL,
SessionData blob,
SessionLast datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (SessionID)
);
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。