综合干狼人综合首页,日本а中文在线天堂,中国av一区,日韩va亚洲va欧洲va国产

27
2017/02

如何使用數(shù)據(jù)庫(kù)設(shè)置存儲(chǔ)session數(shù)據(jù)

發(fā)布時(shí)間:2017-02-27 13:24:05
發(fā)布者:xiangpeiyu
瀏覽量:
0

     PHP中的session有效期默認(rèn)是1440秒(24分鐘),也就是說(shuō),客戶端超過(guò)24分鐘沒(méi)有刷新,當(dāng)前session就會(huì)失效。很明顯,這是不能滿足需要的。 一個(gè)已知管用的方法是,使用session_set_save_handler,接管所有的session管理工作,一般是把session信息存儲(chǔ)到數(shù)據(jù)庫(kù),這樣可以通過(guò)SQL語(yǔ)句來(lái)刪除所有過(guò)期的session,精確地控制session的有效期。這也是基于PHP的大型網(wǎng)站常用的方法。那么接下來(lái)將具體講解如何使用session_set_save_handler;

     session_set_save_handler---設(shè)置用戶級(jí) session 存儲(chǔ)函數(shù)

     函數(shù)原型 void session_set_save_handler (string open, string close, string read, string write, string destroy, string gc) 

     session_set_save_handler() 設(shè)置用戶級(jí) session 存儲(chǔ)函數(shù),用于存儲(chǔ)和取回 session 相關(guān)的數(shù)據(jù). 用于那些使用不同于 PHP Session 指定的存儲(chǔ)方式的情況.

     例如,在本地?cái)?shù)據(jù)庫(kù)存儲(chǔ) session 數(shù)據(jù). 注意: 你必須設(shè)置 php.ini 里面的 session.save_handler配置參數(shù)來(lái)讓 session_set_save_handler() 正常工作.默認(rèn)配置是

session.save_handler = files, 如果想要使用自定義的處理器(如基于數(shù)據(jù)庫(kù)的處理器),可用"user"。

              函數(shù)原型 void session_set_save_handler (string open, string close, string read, string write, string destroy, string gc) 

             下面介紹該函數(shù)的每個(gè)參數(shù)的意義 ,每個(gè)參數(shù)都是一個(gè)回調(diào)函數(shù),否則沒(méi)意義:

             string open  在運(yùn)行session_start()時(shí)執(zhí)行。

             string close  在腳本執(zhí)行完成或調(diào)用session_write_close() 或 session_destroy()時(shí)被執(zhí)行,即在所有session操作完后被執(zhí)行。

             string read  在運(yùn)行session_start()時(shí)執(zhí)行,因?yàn)樵趕ession_start時(shí),會(huì)去read當(dāng)前session數(shù)據(jù)。

             string write  此函數(shù)在腳本結(jié)束和使用session_write_close()強(qiáng)制提交SESSION數(shù)據(jù)時(shí)執(zhí)行。

             string destroy  在運(yùn)行session_destroy()時(shí)執(zhí)行即銷毀一個(gè)會(huì)話中的全部數(shù)據(jù)時(shí)執(zhí)行。

             string gc 執(zhí)行概率由session.gc_probability 和 session.gc_divisor的值決定,時(shí)機(jī)是在open,read之后,session_start會(huì)相繼執(zhí)行open,read和gc。

           備注:session.gc_probability = 1

                     session.gc_divisor = 100 

                     定義在每次初始化會(huì)話時(shí),啟動(dòng)垃圾回收程序的概率。 這個(gè)收集概率計(jì)算公式如下:session.gc_probability/session.gc_divisor 對(duì)會(huì)話頁(yè)面訪問(wèn)越頻繁,概率就應(yīng)當(dāng)越小。建議值為1/1000~5000。

                    以下,則是具體的簡(jiǎn)單應(yīng)用:


$session_mysql_conn = null;  

$session_mysql_host = "127.0.0.1";  

$session_mysql_user = "root";  

$session_mysql_pwd = "root";  

$session_mysql_db = "session";   


  

$session_mysql_flag = false;  

function open($save_path, $session_name)  

{  

    global $session_mysql_host;  

    global $session_mysql_user;  

    global $session_mysql_pwd;  

    global $session_mysql_db;  

      

    if(null == $session_mysql_host   

            || null == $session_mysql_user  

            || null == $session_mysql_db)  

        return false;  

      

    global $session_mysql_conn;  

      

    $session_mysql_conn = mysql_connect($session_mysql_host, $session_mysql_user, $session_mysql_pwd);  

      

    if(false == $session_mysql_conn)  

        return (false);  

      

    if(false == mysql_select_db($session_mysql_db, $session_mysql_conn))  

    {  

        mysql_close($session_mysql_conn);  

        $session_mysql_conn = null;  

        return (false);  

    }  

      

    return(true);  

}  

  

function close()  

{  

    return(true);  

}  

  

function read($id)  

{  

    global $session_mysql_conn;  

    if(null == $session_mysql_conn)  

        return null;  

      

    $select_sql = "select value from session where id = '$id'";  

    $result = mysql_query($select_sql, $session_mysql_conn);  

    if(false == $result)  

        return null;  

      

    if(0 == mysql_num_rows($result))  

        return null;  

      

    $row = mysql_fetch_row($result);  

    if(empty($row))  

        return null;  

      

    $res = $row[0];  

    mysql_free_result($result);  

      

    //echo "session_mysql_read:$id = $res
";  

      

    return $res;  

}  

  

function write($id, $sess_data)  

{  

    //echo "session_mysql_write $id = $sess_data
";  

      

    global $session_mysql_conn;  

    global $session_mysql_flag;  

      

    if(null == $session_mysql_conn)  

        return false;  

  

    $value = mysql_real_escape_string($sess_data);  

    $write_sql="update session set value = '$value' where id = '$id'";  

    if(false == $session_mysql_flag)  

    {  

        $select_sql = "select count(id) from session where id = '$id'";  

        $result = mysql_query($select_sql, $session_mysql_conn);  

          

        if(false == $result)  

            return false;  

          

        $row = mysql_fetch_row($result);  

          

        if(empty($row))  

            return false;  

          

        if($row[0] == 0)  

        {  

            $write_sql="insert into session (id,value) values ('$id', '$value')";  

        }  

        else  

        {  

            $session_mysql_flag = true;  

        }  

    }  

    return mysql_query($write_sql, $session_mysql_conn);  

}  

  

function destroy($id)  

{  

    global $session_mysql_conn;  

  

    if(null == $session_mysql_conn)  

        return false;  

      

    mysql_close($session_mysql_conn);  

    $session_mysql_conn = null;  

}  

  

function gc($maxlifetime)  

{  

    global $session_mysql_conn;  

    if(null == $session_mysql_conn)  

        return false;  

      

    $t = time() - $maxlifetime;  

    $d = date("Y-m-d h:i:s",$t);  

    $delete_sql = "delete from session where ctime < '$d'";  

      

    return mysql_query($delete_sql, $session_mysql_conn);  

}  

  

function set_session_mysql($s_mysql_host, $s_mysql_user, $s_mysql_pwd, $s_mysql_db)  

{  

    global $session_mysql_host;  

    global $session_mysql_user;  

    global $session_mysql_pwd;  

    global $session_mysql_db;  

      

    $session_mysql_host = $s_mysql_host;  

    $session_mysql_user = $s_mysql_user;  

    $session_mysql_pwd = $s_mysql_pwd;  

    $session_mysql_db = $s_mysql_db;  

    session_module_name('user');

    session_set_save_handler("open", "close", "read", "write", "destroy", "gc");      

}  



set_session_mysql("127.0.0.1","root","root","session");


session_start();

$_SESSION['A']="AAA";

$_SESSION['B']="AAA";

$_SESSION['C']="AAA";


?>  

數(shù)據(jù)庫(kù)中的表結(jié)構(gòu):

/* 

 * usage as: 

* 

* date_default_timezone_set("PRC"); 

* set_session_mysql("localhost:3306", "root", "", "db"); 

* session_start(); 

 

* #session table 

 

CREATE TABLE `session` ( 

  `id` varchar(100) NOT NULL DEFAULT '', 

  `value` mediumblob NOT NULL, 

  `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURREN    T_TIMESTAMP, 

  PRIMARY KEY (`id`) 

) ENGINE=MyISAM DEFAULT CHARSET=utf8;  

*/ 


返回列表
综合干狼人综合首页,日本а中文在线天堂,中国av一区,日韩va亚洲va欧洲va国产
成人做爰69片免费看网站| 久久精品这里都是精品| 国产成人一区二区精品非洲| 中文字幕乱码日本亚洲一区二区| 国产一区二区三区| 中文字幕人成不卡一区| 欧美日韩免费不卡视频一区二区三区| 精品久久五月天| 尤物av一区二区| 色域天天综合网| 国产三级精品视频| 另类成人小视频在线| 久久理论电影网| 欧美成人a∨高清免费观看| 久久久美女艺术照精彩视频福利播放| 蜜桃av一区二区在线观看| 久久免费视频色| 日韩伦理av电影| 色网站国产精品| 国产在线乱码一区二区三区| 夜夜操天天操亚洲| 欧洲精品一区二区| 久久综合色天天久久综合图片| 国产高清不卡一区二区| 日韩一本二本av| 99精品国产91久久久久久| 久久久久国产成人精品亚洲午夜| 国产**成人网毛片九色| 国产精品一二三四五| 亚洲婷婷在线视频| 欧美私模裸体表演在线观看| 国产麻豆精品在线| 亚洲精品国久久99热| 日韩一区二区在线观看视频| 紧缚捆绑精品一区二区| 成人激情免费视频| 免费在线欧美视频| 欧美草草影院在线视频| 亚洲免费成人av| 91麻豆国产福利精品| 色综合久久久久久久久| 精品国产乱码久久久久久牛牛| 欧美猛男男办公室激情| 国产精品91xxx| 亚洲精品中文在线影院| 久久久久久99久久久精品网站| 日韩欧美一级二级三级| 国产成人av电影在线观看| 91影院在线观看| 亚洲欧美一区二区三区国产精品| 国v精品久久久网| 成人免费不卡视频| 久久亚区不卡日本| 青娱乐精品视频在线| 久久亚洲一区二区三区明星换脸| 欧美精品在线观看一区二区| 国产偷国产偷亚洲高清人白洁| 92国产精品观看| 在线日韩一区二区| 亚洲小说欧美激情另类| 奇米亚洲午夜久久精品| 日韩一区欧美二区| 亚洲免费观看高清在线观看| 风间由美性色一区二区三区| 自拍偷在线精品自拍偷无码专区| 国产精品乱人伦中文| 99久久国产综合色|国产精品| 欧美日韩国产综合草草| 在线免费不卡电影| 国产午夜三级一区二区三| 丁香婷婷综合色啪| 日韩一区二区三区观看| 国产精品一区一区| 亚洲裸体在线观看| 一区二区视频免费在线观看| 色综合久久综合中文综合网| 欧美视频一区二区三区在线观看| 欧美亚洲图片小说| 久久久综合视频| 中文字幕亚洲综合久久菠萝蜜| 欧美经典三级视频一区二区三区| 久久网站热最新地址| 色伊人久久综合中文字幕| 午夜国产不卡在线观看视频| 欧美三级乱人伦电影| 国产不卡一区视频| 青青国产91久久久久久| 精品国产成人在线影院| 精品日韩av一区二区| 国内不卡的二区三区中文字幕| 欧美丰满少妇xxxxx高潮对白| 国产日产欧美一区二区视频| 麻豆精品视频在线| 欧美日韩精品一区二区三区四区| 欧美老人xxxx18| 午夜亚洲国产au精品一区二区| 欧美精品久久一区| 国产乱码一区二区三区| 久久99精品国产.久久久久| 国产精品福利影院| 欧美一区2区视频在线观看| 亚洲欧洲精品一区二区三区不卡| 中日韩免费视频中文字幕| 国产精品你懂的在线欣赏| 在线观看免费视频综合| 欧美美女激情18p| 日韩一区二区在线观看视频播放| 精品亚洲porn| 亚洲欧洲日韩一区二区三区| 成人午夜精品一区二区三区| 国产自产视频一区二区三区| 在线观看免费一区| 91亚洲永久精品| 欧美性高清videossexo| 久久久精品一品道一区| 欧美一级爆毛片| 久久久777精品电影网影网| 亚洲一区二区三区四区在线| 免费一级片91| 午夜精品久久久久久久久| 综合中文字幕亚洲| 国产激情精品久久久第一区二区| 日韩一区欧美小说| 91老师片黄在线观看| 精品写真视频在线观看| 91麻豆国产自产在线观看| 国产欧美在线观看一区| 伊人性伊人情综合网| 精品在线一区二区| 粉嫩绯色av一区二区在线观看| 国产黄色91视频| 99视频超级精品| 欧美日韩中文一区| 欧美日韩国产高清一区二区| 91精品国产欧美一区二区| 免费看欧美美女黄的网站| 国产精品综合在线视频| 美国av一区二区| 色欧美88888久久久久久影院| 欧美日韩国产不卡| 欧美日韩精品久久久| 亚洲欧洲日韩在线| 夜夜夜精品看看| 亚洲成人精品一区二区| 欧美一卡二卡三卡| 色婷婷综合久久| 亚洲成a人片在线观看中文| 国产精品三级在线观看| 午夜精品久久久久久久久久| 一区二区三区四区五区视频在线观看| 国产伦精品一区二区三区视频青涩| 国产一区二区三区观看| 国产精品久久久久三级| 99国产欧美另类久久久精品| gogogo免费视频观看亚洲一| 国产黄色精品视频| 国产精品麻豆久久久| 日韩成人免费电影| 国产精品毛片久久久久久| 国产精品亲子伦对白| 另类小说一区二区三区| 日韩国产成人精品| 国产精品第四页| 亚洲精品成人悠悠色影视| 欧洲av在线精品| 久久先锋影音av鲁色资源网| 欧美性生活影院| 不卡的av在线播放| 蜜桃一区二区三区四区| 日韩一区二区视频在线观看| 视频一区二区三区入口| 成人在线视频一区二区| 久久精品国产亚洲高清剧情介绍| 成人免费观看男女羞羞视频| 青青草伊人久久| 高清不卡一区二区在线| 久久久一区二区三区捆绑**| 日韩亚洲欧美一区二区三区| 9i看片成人免费高清| 五月天亚洲婷婷| jlzzjlzz亚洲日本少妇| 欧洲色大大久久| 日韩精品亚洲一区二区三区免费| 久久精品亚洲精品国产欧美| 欧美美女视频在线观看| 国产精品久久99| 91一区一区三区| 亚洲国产欧美另类丝袜| 亚洲欧洲三级电影| 精品一区二区在线视频| 日韩欧美国产一区二区三区| 国产麻豆9l精品三级站| 国产精品一区二区视频| 成人aa视频在线观看| 欧洲日韩一区二区三区| 亚洲欧美一区二区三区极速播放| 亚洲欧洲一区二区在线播放| 亚洲婷婷国产精品电影人久久| 欧美亚洲尤物久久| 亚洲午夜三级在线|