欧美一级视-欧美一级视频高清片-欧美一级视频免费-欧美一级视频免费观看-午夜激情视频在线播放-午夜激情视频在线观看

咨詢電話:
15628812133
27
2017/02

如何使用數據庫設置存儲session數據

發布時間:2017-02-27 13:24:05
發布者:xiangpeiyu
瀏覽量:
0

     PHP中的session有效期默認是1440秒(24分鐘),也就是說,客戶端超過24分鐘沒有刷新,當前session就會失效。很明顯,這是不能滿足需要的。 一個已知管用的方法是,使用session_set_save_handler,接管所有的session管理工作,一般是把session信息存儲到數據庫,這樣可以通過SQL語句來刪除所有過期的session,精確地控制session的有效期。這也是基于PHP的大型網站常用的方法。那么接下來將具體講解如何使用session_set_save_handler;

     session_set_save_handler---設置用戶級 session 存儲函數

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

     session_set_save_handler() 設置用戶級 session 存儲函數,用于存儲和取回 session 相關的數據. 用于那些使用不同于 PHP Session 指定的存儲方式的情況.

     例如,在本地數據庫存儲 session 數據. 注意: 你必須設置 php.ini 里面的 session.save_handler配置參數來讓 session_set_save_handler() 正常工作.默認配置是

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

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

             下面介紹該函數的每個參數的意義 ,每個參數都是一個回調函數,否則沒意義:

             string open  在運行session_start()時執行。

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

             string read  在運行session_start()時執行,因為在session_start時,會去read當前session數據。

             string write  此函數在腳本結束和使用session_write_close()強制提交SESSION數據時執行。

             string destroy  在運行session_destroy()時執行即銷毀一個會話中的全部數據時執行。

             string gc 執行概率由session.gc_probability 和 session.gc_divisor的值決定,時機是在open,read之后,session_start會相繼執行open,read和gc。

           備注:session.gc_probability = 1

                     session.gc_divisor = 100 

                     定義在每次初始化會話時,啟動垃圾回收程序的概率。 這個收集概率計算公式如下:session.gc_probability/session.gc_divisor 對會話頁面訪問越頻繁,概率就應當越小。建議值為1/1000~5000

                    以下,則是具體的簡單應用:


$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";


?>  

數據庫中的表結構:

/* 

 * 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;  

*/ 


關鍵詞:
返回列表
午夜在线亚洲| 欧美激情一区二区三区在线播放| 成人a级高清视频在线观看| 日本免费看视频| 午夜欧美福利| 国产高清在线精品一区a| 国产视频一区二区在线观看| 麻豆网站在线看| 亚洲天堂一区二区三区四区| 日本伦理片网站| 欧美爱爱动态| 一本高清在线| 日韩中文字幕在线亚洲一区| 91麻豆精品国产自产在线 | 99久久精品国产免费| 国产国语在线播放视频| 精品久久久久久影院免费| 国产成人啪精品视频免费软件| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 黄视频网站免费| 精品视频免费在线| 亚洲第一视频在线播放| 日本伦理片网站| 日本在线www| 欧美1区| 天天色成人网| 四虎影视精品永久免费网站| 久久国产一久久高清| 999久久狠狠免费精品| 精品视频在线观看一区二区| 国产网站麻豆精品视频| 精品视频在线看 | 国产网站免费视频| 精品久久久久久影院免费| 黄色免费三级| 成人免费高清视频| 久久久久久久网| 91麻豆爱豆果冻天美星空| 精品国产三级a| 精品久久久久久中文字幕一区| 亚洲爆爽| 999久久66久6只有精品| 青草国产在线观看| 日本在线www| 亚欧视频在线| 日本在线www| 黄视频网站免费看| 国产欧美精品午夜在线播放| 成人在免费观看视频国产| 成人免费网站久久久| 久久99这里只有精品国产| 亚欧成人乱码一区二区| 日本伦理黄色大片在线观看网站| 青草国产在线观看| 国产不卡在线观看视频| 欧美一级视频免费观看| 九九干| 久久久久久久久综合影视网| 香蕉视频一级| 日本在线www| 国产不卡高清| 韩国毛片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产高清在线精品一区二区| 精品国产三级a| 成人免费观看网欧美片| 日韩字幕在线| 欧美激情一区二区三区视频 | 人人干人人插| 韩国毛片免费| 日韩专区第一页| 沈樵在线观看福利| 可以免费看污视频的网站| 美女免费精品高清毛片在线视| 九九热国产视频| 国产激情一区二区三区| 久久久久久久网| 亚洲 欧美 成人日韩| 久久精品店| 99色视频在线观看| 欧美激情一区二区三区在线| 999精品在线| 午夜欧美成人香蕉剧场| 成人高清视频免费观看| 亚洲精品影院久久久久久| 成人影院久久久久久影院| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 色综合久久久久综合体桃花网| 人人干人人插| 成人a级高清视频在线观看| 国产视频网站在线观看| 香蕉视频亚洲一级| 色综合久久手机在线| 国产伦久视频免费观看视频| 青青青草影院| 黄视频网站免费| 四虎影视库| 亚洲精品久久久中文字| 黄视频网站免费看| 成人免费一级毛片在线播放视频| 日韩在线观看免费| 精品国产一级毛片| 二级特黄绝大片免费视频大片| 日本伦理网站| 99久久精品国产高清一区二区| 沈樵在线观看福利| 国产成人欧美一区二区三区的| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品国产一区二区三区久久久狼| 成人影院一区二区三区| 亚欧成人乱码一区二区| 九九九在线视频| 国产国语在线播放视频| 高清一级做a爱过程不卡视频| 九九精品影院| 麻豆系列 在线视频| 国产a网| 韩国三级视频在线观看| 免费国产在线观看不卡| 91麻豆精品国产自产在线| 日本伦理网站| 国产精品自拍在线| 亚洲精品影院| 日本伦理片网站| 青青青草影院| 日本特黄特色aaa大片免费| 欧美国产日韩在线| 国产不卡在线播放| 国产视频一区二区在线播放| 日本在线www| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久草免费资源| 成人a大片高清在线观看| 九九九网站| 在线观看成人网| 国产不卡福利| 高清一级做a爱过程不卡视频| 国产不卡在线观看| 可以免费看毛片的网站| 色综合久久天天综合观看| 成人高清免费| 九九精品久久久久久久久| 欧美1卡一卡二卡三新区| 国产福利免费视频| 久久99中文字幕久久| 天天做日日爱夜夜爽| 欧美激情一区二区三区视频| 国产成人啪精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 九九精品影院| 免费国产一级特黄aa大片在线| 国产一区二区福利久久| 国产伦精品一区二区三区在线观看 | 国产美女在线一区二区三区| 国产精品自拍一区| 欧美激情一区二区三区中文字幕| 日韩女人做爰大片| 可以免费看污视频的网站| 成人免费福利片在线观看| 国产一区二区精品在线观看| 久久久久久久免费视频| 午夜欧美成人香蕉剧场| 国产福利免费视频| 四虎影视库国产精品一区| 99热精品在线| 国产亚洲精品aaa大片| 夜夜操网| 国产精品免费久久| 日本免费乱人伦在线观看 | 亚欧成人毛片一区二区三区四区| 99热精品在线| 日韩中文字幕在线亚洲一区| 欧美激情一区二区三区视频| 天天做日日爱夜夜爽| 国产综合成人观看在线| 精品视频在线看 | 亚洲精品久久玖玖玖玖| 精品国产一区二区三区久久久蜜臀| 国产综合成人观看在线| 精品久久久久久中文| 日韩女人做爰大片| 麻豆网站在线免费观看| 国产激情视频在线观看| 深夜做爰性大片中文| 99久久精品国产免费| 国产一区二区精品久久| 成人a级高清视频在线观看| 免费国产在线观看| 亚洲精品影院一区二区| 国产网站免费观看| 久久国产精品自线拍免费| 欧美爱爱动态| 亚洲第一页乱| 91麻豆爱豆果冻天美星空| 99久久精品国产高清一区二区| 999精品影视在线观看| 国产精品免费久久| 可以免费看污视频的网站| 成人高清免费| 国产一区二区精品久|