PHP编程中会话阻塞及解决方案分析

本文介绍PHP编程中的会话阻塞问题和解决方案:

在会话过程中,在会话打开之后,相同的浏览器、相同的程序、不同的页面将被锁定。

问:这是session_start引起梗阻

所以,我写了几页测试它,发现会话造成阻塞,而另外两个案例没有造成阻塞。

查看PHP的bug列表,发现这个问题被提出来了:

描述:



()调用session_start似乎等到其他脚本已经退出

使用相同的会话。我猜是第一个请求

独占使用的会话文件,第二个请求阻塞直到

能打开它吗。

PHP的官方回复是:

谢谢你抽出时间给我们写信。

在PHP的会话机制结合,阻断的原因。因为PHP的会话信息写入文件,1的客户占1的会话文件。因此,当session_start时,文件被锁定,并锁定在读写模式(因为程序可能会修改会话值),所以第二次时,session_start叫,它堵塞了。

最简单的解:

经过检查PHP手册,我们发现了一个session_write_close功能,这是写会话数据和结束会话,也就是说,写会话数据,并关闭该会话。因此,我们可以打开会话通过调用这个函数的函数使用后关闭会话文件。一般来说,会话用于记录用户的身份信息,因此,PHP可以验证。因此,会话可以读取和写入页面执行的开始,和session_write_close函数可以执行后立即打电话。

有关感兴趣的读者的PHP相关内容的更多信息可以看到专用站点:PHP cookie

希望本文能对PHP程序设计有所帮助。