ie与session丢失(新窗口cookie丢失)实测及解决方案
今天在一个群中有人问到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>
<?php
session_start();
var_dump( $_SESSION,$_COOKIE);
从测试中看到,如果cookie设置是延后定时失效,而非进程级的,那在open后也能看到,
所以,针对此情况,防止用户在使用ie内核出现登录状态丢失,可以配合cookie来使用,
php配置提供一个方式是自动把sid加到uri中,但是对于相对路径并不会自动添加,
只不过,cookie被禁用这种极端情况,极少遇到,
cookie+session足够应付常用情况了.
相关推荐
-
asp.net 修改/删除站内目录操作后Session丢失问题
后来经过试验发现,如果删除改变的目录不属于当前项目所在虚拟目录,则Session可用,相反则不可用:调试跟踪中提示的:Session.get_item()--返回null: 后经过研究发现,在虚拟目录删除改变目录会造成Session丢失,以至于失效.而session丢失的实质就是:应用程序重起! 这里有多种解决方案: 1)利用外部进程保存 session 2)利用数据库保存 session 3)用户ID放入cookie,若检测到session为空但cookie存在在重新初始化 session.
-
asp.net 删除项目文件/文件夹IIS重启,Session丢失问题
仔细一看,SSO返回的ticket也不相同,才发现原来IIS重启了,最后解决方案如下: 新建一个类继承IHttpModule 复制代码 代码如下: /// <summary> /// Stops the ASP.NET AppDomain being restarted (which clears /// Session state, Cache etc.) whenever a folder is deleted. /// </summary> public class Stop
-
ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
今天发现在IE10中登录我公司的一个网站时,点击其它菜单,页面总会自动重新退出到登录页,后检查发现,IE10送出的HTTP头,和.AUTH Cookie都没问题,但使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失. 后查实这是ASP.NET 2.0,3.5和4.0的Bugs,因这些版本无法识别IE10的User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功
-
Session丢失的解决办法小结
SessionState 的Timeout),其主要原因有三种 一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法. 二:程序内部里有让Session掉失的代码,及服务器内存不足产生的. 三:程序有框架页面和跨域情况. 第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它) 第二种是检查代码有无Session.Abandon()之类的. 第三种是在Window服务中将ASP.NET State Service
-
JQuery上传插件Uploadify使用详解及错误处理
什么是Uploadify Uploadify是JQuery的一个上传插件,支持多文件上传,实现的效果非常不错,带进度显示. 官网提供的是PHP的DEMO,在这里我详细介绍在Asp.net下的使用. 下载 官方下载 官方文档 官方演示 我们提供的Uploadify下载地址 如何使用 1 创建Web项目,命名为JQueryUploadDemo,从官网上下载最新的版本解压后添加到项目中 2 在项目中添加UploadHandler.ashx文件用来处理文件的上传. 3 在项目中添加UploadFile文
-
IIS服务器中 ASP.NET State Service 开启后 Session 仍容易丢失的问题终极解决办法
解决方法一: 1. 开启ASP.NET State Service服务: 选择管理工具->服务,找到ASP.NET State Service,点开后选择启动,并将启动类型设为自动. 2. 设置程序配置文件: 将web.config打开,会看到有一行是<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" timeout="20"/>,如
-
解决uploadify使用时session发生丢失问题的方法
今天在使用uploadify时发现session会发生丢失的情况,经过一番研究发现,其丢失并不是真正的丢失,而是在使用Flash上传控件的时候使用的session机制和asp.net中的不相同.为解决这个问题使用两种方案,下面进行介绍 第一种:修改Gobal 前台aspx页面: $("#uploadify").uploadify({ 'uploader': '/LZKS/Handler/BigFileUpLoadHandler.ashx', 'swf': '/LZKS/Scripts/
-
iis7中session丢失的解决方法小结
问题描述: Windows Server 2008 +IIS +ASP.net +SQLServer2008搭建的内部WEB系统. 用户Session总是丢失,可能是IIS的不稳定性将导致Session频繁丢失. 用的是Session=SQLSEVER,即把Session保存到数据库. 解决方法: 1,在命令行进入如下地址(InstallSqlState.sql文件目录) cd "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" 2,运行如下
-
uploadify在Firefox下丢失session问题的解决方法
今天在用uploadify上传插件时遇到了一个问题,由于我后台做了权限管理,每个请求都有去读session判断权限,但用这个插件时发现登录后上传不了,原因是在读session时认为没有权限而被拦截了,后来在后台打印登录时产生session的id和上传时读取session的id,果然不一样,在网上搜索了一番,还真有不少人遇到这个问题,现把解决方案贴出来: 先说说我的环境,后台是用JSP,uploadify的版本是3.2 在JSP页面中的配置: 复制代码 代码如下: <script type="
-
asp.net删除文件session丢失
如果你曾经修改了ASP.NET应用程序(dll文件),与修改了bin文件夹或Web.config文件(添加/删除/重命名的文件等),而该网站在运行,你可能已经注意到,这将导致在AppDomain的重新启动.所有的会话状态会丢失和网站再次成功启动,任何登录的用户将被退出(假设你不使用持久Cookie身份验证). 当然,当我们修改了web.config文件,并保存它,迫使一个AppDomain重新启动,这是我们需要的. 我们有时动态创建和删除的文件夹,在ASP.NET 2.0中,文件夹删除将导致一个
随机推荐
- 浅谈Javascript实现继承的方法
- MongoDB聚合功能浅析
- javascript学习笔记(三)BOM和DOM详解
- 简单谈谈Javascript函数中的arguments
- vbs版sql查询分析器lcx作品
- iis 7.5 下站点日志开启以及默认位置设置方法
- javascript中的注释使用与注意事项小结
- ionic2 tabs 图标自定义实例
- C#中把日志导出到txt文本的简单实例
- 使用Python的Tornado框架实现一个一对一聊天的程序
- python操作ssh实现服务器日志下载的方法
- C#使用LitJson解析JSON的示例代码
- C#获取程序文件相关信息的方法
- 浅析安卓(Android)的性能优化
- Android使用ListView实现滚轮的动画效果实例
- jQuery如何使用自动触发事件trigger
- asp vbcrlf是什么意思
- 基于Particles.js制作超炫粒子动态背景效果(仿知乎)
- 使用jquery插件实现图片延迟加载技术详细说明
- Android Animation之TranslateAnimation(平移动画)