日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

修改session的存储机制

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 修改session的存储机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? <?php?
//修改session的存儲機制

//最起碼應該有一個 讀方法, 和一個 寫方法。


//1, 我們先去建立 讀方法 和 寫方法。
//2, 告知session系統,使用我們的方法完成數據的讀和寫操作。


//建立讀方法
/**
?* 利用 sessionID 獲得session數據
?*@param $sess_id string 當前會話的ID
?*@return string 當前的sessiondata (不需要考慮序列化與反序列化的問題)
?*/

function sess_read($sess_id) {
? ? echo 'read';
? ? //查詢的sql語句
? ? $query = "select sess_data from sessions where sess_id='{$sess_id}'";
? ? $result = mysql_query($query);
? ? $row = mysql_fetch_assoc($result);
? ? //返回查詢到的數據
? ? return $row['sess_data'];


}


//寫方法
/**
?* @param $sess_id string 當前的sessionID
?* @param $sess_data string 當前的session數據,(序列化好的)
?*/
function sess_write($sess_id, $sess_data) {
? ? echo 'write';
? ? //應該考慮到 當前的session記錄是否存在
? ? //存在應該update更新,不存在應該insert新建
? ? $expire = time();
? ? $query = "insert into sessions values ('{$sess_id}', '{$sess_data}', {$expire}) on duplicate key update sess_data='{$sess_data}', expire={$expire}";
? ? return mysql_query($query);


}


/**
?*session_start 是執行的方法,用戶初始化資源
?* @param $save_path string php.ini中 session.save_path 的值。
?* @param $sess_name string php.ini中 session.name 的值。ini_get()也可以獲得。
?* ?這2參數就是php.ini文件中對應的值---可以輸出看看
?*/

function sess_open($save_path, $sess_name) {//這2個參數可以不寫
? ? echo 'open';
? ? //連接上數據庫 ?其他幾個函數都可以用這個鏈接不會涉及到作用于的問題
? ? $link = mysql_connect('localhost', 'root', '1234abcd');
? ? mysql_query('use test', $link);
? ? mysql_query('set names utf8');
}


/**
?*在最后,釋放資源的方法
?*/

function sess_close() {
// ? ?echo 'close';
? ? mysql_close();
}
/**
?* @param $sess_id string 當前的sessionID
?*/

function sess_destroy($sess_id){
? ? echo 'destroy';
? ? $query = "delete from sessions where sess_id='{$sess_id}'";
? ? return mysql_query($query);


}
/**
?*負責回收垃圾的函數
?*@param $ttl 當前的session數據的最大生存周期
?*/

function sess_gc($ttl) {
? ? //
// ? ?echo 'gc';
? ? $expire = time() - $ttl;
? ? $query = "delete from sessions where expire < {$expire}";


? ? return mysql_query($query);


}


//將我們的方法 告知給當前的session系統
//利用函數 session_set_save_handler();

session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy', 'sess_gc');




//開啟session


session_start();


$_SESSION['name'] = 'leyangjun';


$_SESSION['age'] = '23';


unset($_SESSION['name']);
//session_destroy();


//var_dump($_SESSION);

轉載于:https://www.cnblogs.com/jiangu66/p/3241334.html

總結

以上是生活随笔為你收集整理的修改session的存储机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。