我刚接触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()吗?如果是的话,为什么别人的系统就没有问题?
解决方案 »
- php+mysql+apache环境配置出现Fatal error: Call to undefined function mysql_connect()
- 写一段什样的php代码或正则式,使其在用户注册时填的用户密码不为键盘上的可见字符时返回FALSE
- 求好用的企业网站建站系统!
- 一套网上多媒体设备报修系统的价格?
- php5.cgi 的问题
- 高手请进..求个正则表达式..
- 第一个php程序应该写点什么那?
- 请教个Secure CRT的问题
- 关于memcached启用sasl验证的问题
- 求问一下 我用 POST 传文件 $_FILES 打印出来是如上
- mysql group by问题
- 如何通过列表中某一个属性来显示具有相同属性的内容
session_start();后一般都不用session_write_close();
期间如果有同名 sessionid 出现,则因文件被锁定而处于排队状态
所以如果你的应用程序有并发现象时(比如频繁的ajax请求),那么就应该及时的执行 session_write_close() 以使临时文件解锁。
对于其他方式的 session 不存在这个现象
不存在的,改用的地方就要用!重复执行则 php5.4 会有警告你部署在本地,不就是测试吗?须知一个浏览器窗口的所有的选项卡的cookie是能够共享的,所以你点开多个选项卡,得到的 sessionid 都是相同的
<?php
session_start();
if (!isset($_SESSION['islogin']) && $_SESSION['islogon']!="Yes"){
Header("Location:login.php");
exit();
}
?>
我现在还不能确认是不是用session_start();之后必须用session_write_close()呢,还是我部署的有问题呢?
意思就是:包含此代码的页面只有用户才可访问
<?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文件的问题?