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操作Access类(PHP+ODBC+Access)
Jan 02 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
Feb 08 PHP
php disk_free_space 返回目录可用空间
May 10 PHP
关于PHP中Object对象的笔记分享
Jun 28 PHP
php生成二维码的几种方式整理及使用实例
Jun 03 PHP
解析PHP提交后跳转
Jun 23 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
php实现登陆模块功能示例
Oct 20 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
PHP实现的操作数组类库定义与用法示例
May 24 PHP
Laravel第三方包报class not found的解决方法
Oct 13 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 STRING 陷阱原理说明
2010/07/24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
Python写的一个简单DNS服务器实例
2014/06/04 Python
Python版微信红包分配算法
2015/05/04 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
Python-split()函数实例用法讲解
2020/12/18 Python
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
档案信息化建设方案
2014/05/16 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
婚内分居协议书范文
2014/11/26 职场文书
离婚被告代理词
2015/05/23 职场文书
环境卫生整治简报
2015/07/20 职场文书
赞美教师的句子
2019/09/02 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server