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 相关文章推荐
phpBB BBcode处理的漏洞
Oct 09 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
php学习之变量的使用
May 29 PHP
有关php运算符的知识大全
Nov 03 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
深入浅出php socket编程
May 13 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
May 05 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
javascript String 对象
2008/04/25 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
Python中的面向对象编程详解(下)
2015/04/13 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
eclipse创建python项目步骤详解
2019/05/10 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
python selenium 获取接口数据的实现
2020/12/07 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
主题婚礼策划方案
2014/02/10 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
带病坚持工作事迹
2014/05/03 职场文书
增员口号大全
2014/06/18 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
先进个人推荐材料
2014/12/29 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
总结Python连接CS2000的详细步骤
2021/06/23 Python