欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP編程中的Session阻塞問題與解決方法分析

 更新時(shí)間:2017年08月07日 11:04:12   作者:leezhxing  
這篇文章主要介紹了PHP編程中的Session阻塞問題與解決方法,簡單分析了php session阻塞的原理、原因與簡單解決方法,需要的朋友可以參考下

本文實(shí)例講述了PHP編程中的Session阻塞問題與解決方法。分享給大家供大家參考,具體如下:

使用session過程中,在開啟session后,同一瀏覽器,執(zhí)行同一程序,不同頁面會(huì)被鎖。不同瀏覽器不會(huì)出現(xiàn)這種情況。

疑問:是不是session_start導(dǎo)致了阻塞?

于是,我寫了幾個(gè)頁面測試了一下,發(fā)現(xiàn)是session導(dǎo)致了阻塞,而其他兩種情況不會(huì)造成阻塞。

查了下PHP的Bug列表,發(fā)現(xiàn)有人提出了這個(gè)問題:

Description:
------------
Calling session_start() appears to wait until other scripts have exited

that are using the same session. My guess is the 1st request locks the
session file for exclusive use, and the second request blocks until it
can open it.

PHP官方的回復(fù)是:

Thank you for taking the time to write to us, but this is not a bug.This is expected, the session file is locked to avoid corruption.

結(jié)合了PHP的Session機(jī)制,找到了阻塞的原因。由于PHP的Session信息是寫入文件的,1個(gè)客戶端占有1個(gè)session文件。因此,當(dāng) session_start被調(diào)用的時(shí)候,該文件是被鎖住的,而且是以讀寫模式鎖住的(因?yàn)槌绦蛑锌赡芤薷膕ession的值),這樣,第2次調(diào)用 session_start的時(shí)候就被阻塞了。

最簡解決方法:

查了PHP的手冊(cè),發(fā)現(xiàn)一個(gè)session_write_close函數(shù),作用是Write session data and end session,也就是寫session的數(shù)據(jù),同時(shí)關(guān)閉這個(gè)session。因此,我們可以在用完session之后,調(diào)用這個(gè)函數(shù)關(guān)閉session 文件即可解除鎖定。一般,session是用來記錄用戶身份信息的,以便PHP進(jìn)行身份認(rèn)證,因此完全可以將session的讀寫放在頁面剛開始執(zhí)行的時(shí) 候,在執(zhí)行完以后,馬上調(diào)用session_write_close函數(shù)即可。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP中cookie用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP設(shè)計(jì)模式之簡單工廠和工廠模式實(shí)例分析

    PHP設(shè)計(jì)模式之簡單工廠和工廠模式實(shí)例分析

    這篇文章主要介紹了PHP設(shè)計(jì)模式之簡單工廠和工廠模式,結(jié)合實(shí)例形式分析了php設(shè)計(jì)模式中工廠模式的實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-03-03
  • PHP實(shí)現(xiàn)算式驗(yàn)證碼和漢字驗(yàn)證碼實(shí)例

    PHP實(shí)現(xiàn)算式驗(yàn)證碼和漢字驗(yàn)證碼實(shí)例

    這篇文章主要介紹了PHP實(shí)現(xiàn)算式驗(yàn)證碼和漢字驗(yàn)證碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-03-03
  • php 三大特點(diǎn):封裝,繼承,多態(tài)

    php 三大特點(diǎn):封裝,繼承,多態(tài)

    本文主要介紹了php 三大特點(diǎn):封裝,繼承,多態(tài)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • php的POSIX 函數(shù)以及進(jìn)程測試的深入分析

    php的POSIX 函數(shù)以及進(jìn)程測試的深入分析

    本篇文章是對(duì)php的POSIX函數(shù)以及進(jìn)程測試進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php防止CC攻擊代碼 php防止網(wǎng)頁頻繁刷新

    php防止CC攻擊代碼 php防止網(wǎng)頁頻繁刷新

    這篇文章主要介紹了php防止CC攻擊代碼和php防止網(wǎng)頁頻繁刷新,網(wǎng)頁快速惡意刷新,cc攻擊利用代理服務(wù)器生成指向目標(biāo)站點(diǎn)的合法請(qǐng)求,模擬多用戶不停的對(duì)受害網(wǎng)站進(jìn)行訪問,感興趣的小伙伴們可以研究一下
    2015-12-12
  • 用PHP去掉文件頭的Unicode簽名(BOM)方法

    用PHP去掉文件頭的Unicode簽名(BOM)方法

    下面小編就為大家?guī)硪黄肞HP去掉文件頭的Unicode簽名(BOM)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 詳解thinkphp的Auth類認(rèn)證

    詳解thinkphp的Auth類認(rèn)證

    Auth類已經(jīng)在ThinkPHP代碼倉庫中存在很久了,但是因?yàn)橐恢睕]有出過它的教程,很少人知道它,它其實(shí)比RBAC更方便。本文帶著大家來詳細(xì)了解它。
    2021-05-05
  • PHP define函數(shù)的使用說明

    PHP define函數(shù)的使用說明

    PHP預(yù)先定義了幾個(gè)常量,并提供了一種機(jī)制在運(yùn)行時(shí)自己定義。常量和變量基本上是一樣的,不同的是:常量必須用DEFINE函數(shù)定義,常量一旦定義好,就不能被重新定義了。
    2008-08-08
  • php實(shí)現(xiàn)的常見排序算法匯總

    php實(shí)現(xiàn)的常見排序算法匯總

    這篇文章主要介紹了php實(shí)現(xiàn)的常見排序算法匯總,包括插入排序、選擇排序、冒泡排序、快速排序、歸并排序與堆排序,并附有對(duì)排序算法的詳細(xì)說明,需要的朋友可以參考下
    2014-09-09
  • php中獲取指定IP的物理地址的代碼(正則表達(dá)式)

    php中獲取指定IP的物理地址的代碼(正則表達(dá)式)

    網(wǎng)站常用的模塊可能出了注冊(cè)、登陸、發(fā)稿、留言、評(píng)論,剩下比較重要的也許就是獲取IP并作相應(yīng)的數(shù)據(jù)處理了。
    2011-06-06

最新評(píng)論