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程序员工具
May 26 PHP
php结合飞信 免费天气预报短信
May 07 PHP
PHP遍历数组的几种方法
Mar 22 PHP
PHPEXCEL 使用小记
Jan 06 PHP
php中使用__autoload()自动加载未定义类的实现代码
Feb 06 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
php实现的百度搜索某地天气的小偷代码
Apr 23 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
php制作的简单验证码识别代码
Jan 26 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 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 和 MySQL 基础教程(三)
2006/10/09 PHP
php session和cookie使用说明
2010/04/07 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
laravel入门知识点整理
2020/09/15 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
jQuery 加上最后自己的验证
2009/11/04 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
中国最大的团购网站:聚划算
2016/09/21 全球购物
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
Linux的主要特性
2014/10/06 面试题
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
电脑教师的自我评价
2013/12/18 职场文书
七年级历史教学反思
2014/02/05 职场文书
人事文员岗位职责
2014/02/16 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
大学生受助感言
2015/08/01 职场文书
Java线程的6种状态与生命周期
2022/05/11 Java/Android