我查了一下PHP的帮助,看到了这样一段话
benja at benja dot be (15-Apr-2003 05:45)Just for info, session_start() blocks if another PHP using the same session is still running in background. It seems it's waiting the other PHP to finish... and sometimes it can be a problem. Create 2 different sessions by setting 2 different names : session_name() solve the problem.
Benja.
看来这个问题已经被前人发现了,他说的指定两个session_name()这种解决方案,可以用吗?如果我后台有10个PHP页面在执行(用户开了10个窗口看10个帖子),岂不是要指定10个session_name()?
benja at benja dot be (15-Apr-2003 05:45)Just for info, session_start() blocks if another PHP using the same session is still running in background. It seems it's waiting the other PHP to finish... and sometimes it can be a problem. Create 2 different sessions by setting 2 different names : session_name() solve the problem.
Benja.
看来这个问题已经被前人发现了,他说的指定两个session_name()这种解决方案,可以用吗?如果我后台有10个PHP页面在执行(用户开了10个窗口看10个帖子),岂不是要指定10个session_name()?
我不知道怎么解决,我想也许在PHP.INI可以设置吧
<?php
$r = rand(1, 15);
session_name("session".$r);
session_start();
$_SESSION['user_id'] = 10001;
echo $_SESSION['user_id'];
echo "<a href=\"a.phtml\" target=_blank>asdf</A><BR>";
echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<BR>";
?>
问题似乎就解决了
但是这样也不好,我岂不是要在每个源程序里面的session_start()前面都加上这样一段代码?
我想这是一个解决方法。
刚才我查了查,有个session_destroy()函数,建议试用。 你在你哪个运行时间长的页面,在session_start()之后,早点调用session_destroy(),看看另外一个用session_start()的页面是否早点执行