日期:2014-05-17  浏览次数:20512 次

一个很奇怪的session问题。。
PHP code

//session_start();
$op = @$_GET['op'];
if($op=='1'){
    for ($i=0; $i<=20; $i++) {
        echo $i;
        sleep(1);
    }
    exit('end');
}elseif ($op=='2'){
    echo $op;
}

1、在浏览器内先访问$op=1时,程序会执行20秒
2、在浏览器内访问$op=2时,程序会立即执行结束。

3、当我使用session_start();时,重复1、2操作,2会在1执行结束后执行。
4、使用session_start(),将1、2在两个浏览器下操作,2会立即执行结束。
不解,session_start()会锁?




------解决方案--------------------
你的 两个浏览器 是如何打开的?
如果是两个选项卡或者是通过菜单新建窗口产生的,都会有你说的现象

你可以在程序中加入
echo session_id();

来观察和判断 session_start() 会锁的现象