国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP自帶Session隱患(session文件獨占鎖引起阻塞)

2020-03-22 17:57:22
字體:
來源:轉載
供稿:網友
  • PHP默認的會話處理器是session.save_handler = files(即文件)。如果同一個客戶端同時并發發送多個請求(如ajax在頁面同時發送多個請求),且腳本執行時間較長,就會導致session文件阻塞,影響性能。因為對于每個請求,PHP執行session_start(),就會取得文件獨占鎖,只有在該請求處理結束后,才會釋放獨占鎖。這樣,同時多個請求就會引起阻塞。解決方案如下:

    (1)修改會話變量后,立即使用session_write_close()來保存會話數據并釋放文件鎖。

     

     

    //author http://www.lai18.com session_start(); $_SESSION['test'] = 'test';session_write_close(); //do something

    (2)利用session_set_save_handler()函數是實現自定義會話處理。

     

    //author http://www.lai18.comfunction open($savePath, $sessionName){    echo 'open is called';    return true;} function close(){    echo 'close is called';    return true;} function read($sessionId){    echo 'read is called';    return '';} function write($sessionId, $data){    echo 'write is called';    return true;} function destroy($sessionId){    echo 'destroy is called';    return true;} function gc($lifetime){    echo 'gc is called';    return true;} session_set_save_handler("open", "close", "read", "write", "destroy", "gc");register_shutdown_function ( 'session_write_close' ); session_start(); $_SESSION['foo'] = "bar";

    當然,在 php 5.4.0之后,你可以通過實現 SessionHandlerInterface 接口或繼承 SessionHandler 類來使用。

     

    //author http://www.lai18.comhtml' target='_blank'>class MySessionHandler extends SessionHandler  {     public function __construct()    {    }     public function open($save_path, $session_id)    {    }     public function close()    {     }     public function create_sid()    {    }     public function read($id)    {    }     public function write($id, $data)    {    }     public function destroy($id)    {    }} $handler = new MySessionHandler(); //第2個參數將函數 session_write_close()  注冊為 register_shutdown_function()  函數。session_set_save_handler($handler, true);


    轉載請注明: http://blog.csdn.net/hello_katty

    PHP編程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普安县| 铁岭市| 滁州市| 丹东市| 萨迦县| 庆云县| 勃利县| 景谷| 浑源县| 延安市| 开原市| 长垣县| 博客| 富民县| 会东县| 富平县| 阳东县| 噶尔县| 砚山县| 尉氏县| 石台县| 岳西县| 普兰县| 监利县| 商丘市| 望谟县| 库车县| 革吉县| 塘沽区| 石渠县| 霸州市| 抚州市| 芦山县| 红河县| 湖口县| 固原市| 桂林市| 蛟河市| 清远市| 溆浦县| 汝城县|