說說session裏相關的事情(一)

 
    session工做機制是:當程序須要爲某個客戶端的請求建立一個session的時候,服務器首先會檢查這個客戶端是否包含了一個session標誌,咱們稱之爲session_id,若是客戶端不包含session_id,會從新生成一個session_id。
    session關閉條件:1.啓用了session_destroy重置函數時候刪除2session的上次活動時間距離當前時間的間隔超過了session的超時設置時間也會自動關閉3.服務器進程被中止
    session的默認生命週期在php5裏是180分鐘(每一個客戶端訪問都會留一個session的小文本佔用一點內存作記錄,因此要按期清除必定的session,爲了保證性能)
    與session相關的一些經常使用函數:
    1. session_id  獲取當前的session_id  會話識別id
    若是指定了 id 參數的值, 則使用指定值做爲會話 ID。 必須在調用 session_start() 函數以前調用 session_id() 函數。 不一樣的會話管理器對於會話 ID 中可使用的字符有不一樣的限制。
    2.session_name — 讀取/設置會話名稱  session_name() 函數返回當前會話名稱。 若是指定 name 參數, session_name() 函數會更新會話名稱, 並返回 原來的 會話名稱。
        3.session_save_path ([ string $path ] ) session的保存地址 默認的保存文件名稱是sess_SESSIONID
    session的默認讀取函數
    4.session_set_save_handler
     設置用戶自定義會話存儲函數  默認的使用例子
    class MySessionHandler implements SessionHandlerInterface
             {
                   // 在這裏實現接口
                }

               $handler = new MySessionHandler();
               session_set_save_handler($handler, true);
               session_start();
    
    
    
    php.ini裏與session相關的最經常使用的設置:
    1.session.use_cookies默認值是1.表示用cookie來傳遞session_id(),反之是用query_string來傳遞
    2.session.name 這是用來儲存session_id的鍵值,默認是PHPSESSID。session經過這個來保存session的信息
    3.session.cookie_lifetime:這個表明SessionID在客戶端Cookie儲存的時間,默認是0,表明瀏覽器一關閉SessionID就做廢……就是由於這個因此Session不能永久使用!
    4.session.gc_maxlifetime = 1440  這個是Session數據在服務器端儲存的時間,若是超過這個時間,那麼Session數據就自動刪除!
    5.session的保存路徑:(有些系統沒有權限讀取默認的session儲存路徑Linux裏是/tmp)
     session_save_path(dirname(__FILE__).'/phpernote/');
     設置保存路徑的時候,須要先先於session_start()的啓動  不然是保存不了的
    ini_set('session.save_path', dirname(__FILE__).'/phpernote/');php

相關文章
相關標籤/搜索