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 相关文章推荐
PHP文件上传实例详解!!!
Jan 02 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
windows7下安装php的php-ssh2扩展教程
Jul 04 PHP
php批量删除超链接的实现方法
Oct 19 PHP
Zend Framework分页类用法详解
Mar 22 PHP
php模拟post上传图片实现代码
Jun 24 PHP
关于PHP内置的字符串处理函数详解
Feb 04 PHP
PHP实现的操作数组类库定义与用法示例
May 24 PHP
使用laravel指定日志文件记录任意日志
Oct 17 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 PHP
tp5.1 框架查询表达式用法详解
May 25 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
PHP实现懒加载的方法
2015/03/07 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
Python常用知识点汇总
2016/05/08 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
银行纠风工作实施方案
2014/06/08 职场文书
英语专业自荐书
2014/06/13 职场文书
安装工程师岗位职责
2015/02/13 职场文书
《静夜思》教学反思
2016/02/17 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android