PHP5中的session 问题

maweihua 2013-05-22 03:50:35
我刚接触php,对php的session 不明白,我在php.ini 文件里设置session.save_path = "F:\facai\session" ,并且文件夹下面能够产生session,但是运行代码的时候,如果点击快的时候,真个服务就锁死了,我估计是session锁的问题,代码是别人的,我看了下里面有很多session_start();语句,但是没有session_write_close()语句,程序是别人的,但是在别人的系统上运行正常。我想应该不是session没有关闭的问题,应该是我的php配置的问题。顺便问一句,session_start();之后一定要session_write_close()吗?如果是的话,为什么别人的系统就没有问题?
...全文
303 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
maweihua 2013-07-08
  • 打赏
  • 举报
回复
这个问题我描述的不清楚还是咋地?怎么就没有人能结贴呢?
maweihua 2013-05-23
  • 打赏
  • 举报
回复
问题还没解决,自己顶一下!
maweihua 2013-05-23
  • 打赏
  • 举报
回复
到底是什么问题啊?我部署到两台机器上都是这个问题,难道和操作系统有关系莫
u010801568 2013-05-22
  • 打赏
  • 举报
回复
学习中,支持
maweihua 2013-05-22
  • 打赏
  • 举报
回复
版本:Apache Version Apache/2.4.3 (Win32) PHP/5.4.7 ,先回家哭会儿,希望能有结果
maweihua 2013-05-22
  • 打赏
  • 举报
回复
如果和session无关,那和什么有关系呢?我把代码 <?php session_start(); if (!isset($_SESSION['islogin']) && $_SESSION['islogon']!="Yes"){ Header("Location:login.php"); exit(); } ?> 修改成 <?php if (!session_id()) session_start(); //session_start(); if (!isset($_SESSION['islogin']) && $_SESSION['islogon']!="Yes"){ Header("Location:login.php"); session_write_close(); exit(); } session_write_close(); ?> 然后连续点击页面,没有发现页面卡死的现象,是不是我的php版本有bug?还是windows系统造成读写session文件的问题?
xuzuning 2013-05-22
  • 打赏
  • 举报
回复
如果是 用别的电脑也进不去了,那么就与 session 无关了 你 #8 的代码不是很正常吗?没有登录与登录未成功,就转向登录页面 意思就是:包含此代码的页面只有用户才可访问
maweihua 2013-05-22
  • 打赏
  • 举报
回复
贴段代码:所有的页面开始都有这么一点代码 <?php session_start(); if (!isset($_SESSION['islogin']) && $_SESSION['islogon']!="Yes"){ Header("Location:login.php"); exit(); } ?> 我现在还不能确认是不是用session_start();之后必须用session_write_close()呢,还是我部署的有问题呢?
maweihua 2013-05-22
  • 打赏
  • 举报
回复
不是的,我部署在服务器上,对页面中的链接连续点击多次,之后,系统就被锁住了,用别的电脑也进不去了,我觉得是不是在session_start()后面一定要调用session_write_close() 呢?还是在php管理session的时候有什么特殊的配置?还请各位高手不吝赐教啊,太急了
xuzuning 2013-05-22
  • 打赏
  • 举报
回复
session_start()用到的地方太多了? 不存在的,改用的地方就要用!重复执行则 php5.4 会有警告 你部署在本地,不就是测试吗?须知一个浏览器窗口的所有的选项卡的cookie是能够共享的,所以你点开多个选项卡,得到的 sessionid 都是相同的
maweihua 2013-05-22
  • 打赏
  • 举报
回复
即使有并发,也不会一直锁住,其他用户都打不开所有的页面了。同样的代码,别人可以(他们部署到linux系统了),我用的是xampp部署到windows上了,慢点点击没有问题,稍微快一点,就整个网站都被锁住了,我看了下代码中session_start()用到的地方太多了,我不可能每个地方都修改了。我想知道的是:是不是在php.ini中能够设置?或者别的什么方法?别人怎么就可以呢?谁知到啊?
lizhe11 2013-05-22
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
以文件方式(默认的)启动的 session,将在 session_start() 后锁定 session 临时文件 期间如果有同名 sessionid 出现,则因文件被锁定而处于排队状态 所以如果你的应用程序有并发现象时(比如频繁的ajax请求),那么就应该及时的执行 session_write_close() 以使临时文件解锁。 对于其他方式的 session 不存在这个现象
引用 3 楼 xuzuning 的回复:
以文件方式(默认的)启动的 session,将在 session_start() 后锁定 session 临时文件 期间如果有同名 sessionid 出现,则因文件被锁定而处于排队状态 所以如果你的应用程序有并发现象时(比如频繁的ajax请求),那么就应该及时的执行 session_write_close() 以使临时文件解锁。 对于其他方式的 session 不存在这个现象
说的 很详细,我不多说了
xuzuning 2013-05-22
  • 打赏
  • 举报
回复
以文件方式(默认的)启动的 session,将在 session_start() 后锁定 session 临时文件 期间如果有同名 sessionid 出现,则因文件被锁定而处于排队状态 所以如果你的应用程序有并发现象时(比如频繁的ajax请求),那么就应该及时的执行 session_write_close() 以使临时文件解锁。 对于其他方式的 session 不存在这个现象
maweihua 2013-05-22
  • 打赏
  • 举报
回复
感谢您的回复,但是我不知道,为什么连续点击页面之后,整个服务器就锁死了只要有session的页面都都不开,是不是我哪里配置有问题啊?
xiongdawang 2013-05-22
  • 打赏
  • 举报
回复
没懂你说的啥子? session_start();后一般都不用session_write_close();

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧