ie与session丢失(新窗口cookie丢失)实测及解决方案


Posted in PHP onJuly 15, 2013

今天在一个群中有人问到ie6中使用js的open,发现新窗口中并获取不到session,
经过使用下面的测试代码测试发现,是因为phpsessionid储存是进程级的有效期,只有同一进程才能获取得到,很多人说,open后或是target="_blank",都是会打开新的ie进程,
所以,之前窗口的phpsessionid就不跟着新窗口走,导致获取不到.
我自己的测试使用的是ietest,6/7/8(9启动不起来,不确定),都出现相同的情况.
但是使用windows自带的ie10测试不存在此情况.
chrome也是多线程,但是并不存在此情况.

firefox不存在此情况.
index.php

<?php 
setcookie('kkkkk','bbbb', time() + 1111111); 
session_start(); 
$_SESSION['qidizi'] = 'kkkk'; 
var_dump( $_SESSION,$_COOKIE); 
?> 
<input type="button" value="d" onclick="window.open('./b.php');" /> 
<a href="b.php" target="_blank">dddd</a>

b.php 跳出页面
<?php 
session_start(); 
var_dump( $_SESSION,$_COOKIE);

从测试中看到,如果cookie设置是延后定时失效,而非进程级的,那在open后也能看到,
所以,针对此情况,防止用户在使用ie内核出现登录状态丢失,可以配合cookie来使用,
php配置提供一个方式是自动把sid加到uri中,但是对于相对路径并不会自动添加,
只不过,cookie被禁用这种极端情况,极少遇到,
cookie+session足够应付常用情况了.
PHP 相关文章推荐
用ODBC的分页显示
Oct 09 PHP
动态生成gif格式的图像要注意?
Oct 09 PHP
PHP与SQL注入攻击[三]
Apr 17 PHP
PHP中设置时区方法小结
Jun 03 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
详解no input file specified 三种解决方法
Nov 29 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 PHP
实测在class的function中include的文件中非php的global全局环境
Jul 15 #PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 #PHP
PHP 转义使用详解
Jul 15 #PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 #PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
Jul 15 #PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 #PHP
php的$_FILES的临时储存文件与回收机制实测过程
Jul 12 #PHP
You might like
php2html php生成静态页函数
2008/12/08 PHP
深入了解PHP类Class的概念
2012/06/14 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
纯js实现背景图片切换效果代码
2010/11/14 Javascript
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
Python 开发Activex组件方法
2009/11/08 Python
python实现图书管理系统
2018/03/12 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
自定义django admin model表单提交的例子
2019/08/23 Python
Python代码需要缩进吗
2020/07/01 Python
关于Python错误重试方法总结
2021/01/03 Python
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
工作个人的自我评价
2014/01/14 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
铁路安全反思材料
2014/12/24 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书