php之session進階_PHP教程

來源:互聯網
上載者:User

php之session進階


此篇主要微微講解一下session的進階用法

php.ini設定檔中有關session進階的配置:

session.save_path:session儲存地址(原路徑:C:/Users/ADMINI~1/AppData/Local/Temp)
session_name:session擷取到的名稱
session.use_trans_sid:啟用SID支援

session.gc_maxlifetime: 記憶體回收行程, 指定過了多少秒之後資料就會被視為垃圾,並被清除

session.gc_probability=1
session.gc_divisor=100
這兩合起來就是啟動gc進程管理機率的
初始化時(session_start())
機率=session.gc_probability/session.gc_divisor

session.use_cookie = 1:是否使用cookie
session.cookie_path = '/':cookie儲存路徑
session.cookie_domain = '': 一般不用改
session.cookie_lifetime = 0: 儲存時間長

session.save_handler = files:用檔案來儲存會話信,改成user
session.save_handler=memcache: 如果是memcache,那麼save_path=tcp://localhost:11211

一、首先在設定檔中將session.save_handler的值改為user (原本是files),將session資料儲存路徑改到D盤

二、在根目錄下建立相關的檔案

session.php 是公用的標頭檔,one.php 是session註冊事件檔案,two.php 是測試檔案,three.php 是登出檔案

one.php:

";

two.php:
';    echo session_name().'='.session_id()."";

three.php:
";

對於公用的標頭檔 session.php 相對重要,這之前必須先將設定檔中的 必須將session.serialize_handler = file的值改為user

session.php 要使用到 session_set_save_handler() 函數,查看手冊其用到的參數,再開啟session

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

再根據參數寫出各個方法,重點是把握各個函數執行的時間

open():


//在運行session_start()是調用,讀取session到$_SESSION中    function open($save_path, $session_name){    global $sess_save_path;   //將儲存路徑設定為全域變數    $sess_save_path=$save_path;  //讀取的路徑給儲存路徑    return true;    }

close():
//session_wirte_close()和session_destroy()    function close(){    return true;    }

read():
//session_start(),$_SESSION    //自動把session_id傳進來    function read($id){    global $sess_save_path;    $sess_file=$sess_save_path."/kf_".$id;    return (string)@file_get_contents($sess_file);    }

write():
//指令碼結束時和使用session_write_close()強制提交SESSION資料時    //直接調用$_SESSION[]="aaa";    function write($id, $sess_data){    global $sess_save_path;    //定義儲存檔案及檔案名稱    $sess_file=$sess_save_path."/kf_".$id;    if($fp=@fopen($sess_file, "w")){    $return=fwrite($fp, $sess_data);    fclose($fp);    return $return;    }else{    return false;    }    }

的story()和gc():(刪除和記憶體回收)

//session_destroy()時    function destroy($id){    global $sess_save_path;    $sess_file=$sess_save_path."/kf_".$id;    //刪除路徑對象的檔案    return @unlink($sess_file);    }    //session.gc_probability和session.gc_divisor決定的,在open()和read()讀資料時,    function gc($maxlifetime){    global $sess_save_path;    //所有到期的都要刪除    //glob遍曆出所有以"/kf"的檔案作為每一個檔案    foreach(glob($sess_save_path."/kf_*") as $filename){    if(filetime($filename)+$maxlifetime < time()){    @unlink($filename);    echo $filename;    }    }    return true;    }





http://www.bkjia.com/PHPjc/971081.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/971081.htmlTechArticlephp之session進階 此篇主要微微講解一下session的進階用法 php.ini設定檔中有關session進階的配置: session.save_path:session儲存地址(原路徑:C...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.