php中mongodb處理session的方法

來源:互聯網
上載者:User

   cookie只是session綁定用戶端的一種途徑,其它的還有比如url等 session_set_save_handler僅僅是對伺服器端,session的儲存方式,預設為檔案儲存體,可更改為任何其它儲存,比如資料庫,memcache等
  可以使用 session_set_save_handler的函數:
  bool session_set_save_handler(callback $open, callback $close,
callback $read, callback $write,
callback $destroy, callback $gc)
    注意: 使用本函數前,先要配置php.ini檔案,session.save_hadler=user ,否則,session_set_save_handler()不會生效。

   第一個參數是開啟會話時調用的處理器,接受兩個參數 save_path 和 session_name,分別是會話儲存路徑 (要記得 PHP 預設機制是檔案方式的,因此有檔案路徑) 和 COOKIE 中用於儲存 SESSION ID 的鍵名,其中鍵名可以通過 session_name 來擷取和修改

第二個參數是關閉會話時的處理器,沒有參數

第三個參數是讀取會話時的處理器,接受一個參數 session_id,代表 COOKIE 中儲存的會話 ID

第四個參數是儲存會話時的處理器,接受兩個參數 session_id 和 session_data。官方手冊中提及到,PHP 5.0.5 以後,close 和 write 處理器將會在類析構之後調用,因此處理器內不能使用類和拋出異常 (Exception 也是一個類) 而在解構函式內可以使用 SESSION,因此我們需要在程式中 (比如在 open 或者 read 處理器內) 聲明一下保證讓 session_write_close 在析構前完成

register_shutdown_function('session_write_close');

第五個參數是刪除會話時的處理器,接受一個參數 session_id,代表 COOKIE 中儲存的會話 ID

最後一個參數是會話到期時的處理器,接受一個參數 maxlifetime,代表逾時秒數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.