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中使用Oracle数据库(3)
Oct 09 PHP
php Undefined index和Undefined variable的解决方法
Mar 27 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
Apr 15 PHP
php date()日期时间函数详解
May 16 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
Apr 28 PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
PHP的基本常识小结
Jul 05 PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 PHP
PHPCMS忘记后台密码的解决办法
Oct 30 PHP
PHP编程获取各个时间段具体时间的方法
May 26 PHP
laravel Model 执行事务的实现
Oct 10 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
php常用的url处理函数总结
2014/11/19 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
angular分页指令操作
2017/01/09 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
js实现微信聊天效果
2020/08/09 Javascript
python基础教程之面向对象的一些概念
2014/08/29 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
求职自荐书范文
2013/12/04 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
社区服务活动报告
2015/02/05 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
少先队中队工作总结
2015/08/14 职场文书
用php如何解决大文件分片上传问题
2021/07/07 PHP
人民币符号
2022/02/17 杂记