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和MySql中计算时间差的方法
Apr 22 PHP
判断PHP数组是否为空的代码
Sep 08 PHP
一个PHP并发访问实例代码
Sep 06 PHP
zend optimizer在wamp的基础上安装图文教程
Oct 26 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
php实现webservice实例
Nov 06 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
谈谈 PHP7新增功能
Dec 16 PHP
Laravel5权限管理方法详解
Jul 26 PHP
PHP读取word文档的方法分析【基于COM组件】
Aug 01 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 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
Terran兵种对照表
2020/03/14 星际争霸
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
js 操作符实例代码
2009/10/24 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python之re操作方法(详解)
2017/06/14 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
德尔福集团DELPHI的笔试题
2012/02/22 面试题
境外导游求职信
2014/02/27 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
代理人委托书
2014/09/16 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
计划生育目标责任书
2015/05/09 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书