实现总结发现,PHP4的session是只会对当前打开的浏览器窗口生效的(W2K、IE5、NS6)均测试过;
我们现在先来简单测试一下:
首先我们需要创建两个PHP文件;
为了避免不必要的清楚浏览器cache打开的两个浏览器窗口,在第二个浏览器窗口中执行test.1php;注意!这个时候我们应该看到浏览器中显示值是“0”。那么好,继续我们在第二个浏览器窗口中直接test2.php并且持续刷新,我们就会看到浏览器中的数值在不断递增,这就证明我们的session生效了。
我们再来看其他的情况,首先在第一个浏览器窗口中运行test2.php,无显示后继续刷新仍无显示,我们打开第三个浏览器运行也没有显示,总结出来session不能跨窗口。
那么我们要怎么来实现呢,首先我们得看一下cookie的情况,还是建两个文件。
然后我们仍然用打开的第三个窗口,在第二个窗口中运行test3.php结果没有显示,然后我们在第三个窗口中分别运行test4.php都会显示This is acookie;这说明使用cookie是允许跳窗口的。
问题到了我们怎么才能让session跳窗口运行呢。其实session也在cookie中保存了id;不过session是不可以使用cookie的,因为这不在文本范围。但cookie的名字却与你在php.ini总的session.name有关,缺省值为“PHPSESSID”但在IE的cache中却没有,所i月我们需要通过echo $HTTP_COOKIE_VARS[“PHPSESSID”]来查看它的值,当然也可以通过setcookie() 来设置它。PHP4中可以使用session_set_cookie_params()和session_get_cookie_params()
来设置和查看session的cookie设置。但我试了一下不起任何作用,session仍然是关闭浏览器窗口就失效,仍然不能跨窗口运行,具体的调试本人不才还没有得出更好的结论。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !