ie與session丟失(新窗口cookie丟失)實(shí)測(cè)及解決方案
更新時(shí)間:2013年07月15日 17:23:29 作者:
正如標(biāo)題所言測(cè)試結(jié)果為:如果cookie設(shè)置是延后定時(shí)失效,而非進(jìn)程級(jí)的,那在open后也能看到,所以,針對(duì)此情況,防止用戶在使用ie內(nèi)核出現(xiàn)登錄狀態(tài)丟失,可以配合cookie來使用
今天在一個(gè)群中有人問到ie6中使用js的open,發(fā)現(xiàn)新窗口中并獲取不到session,
經(jīng)過使用下面的測(cè)試代碼測(cè)試發(fā)現(xiàn),是因?yàn)閜hpsessionid儲(chǔ)存是進(jìn)程級(jí)的有效期,只有同一進(jìn)程才能獲取得到,很多人說,open后或是target="_blank",都是會(huì)打開新的ie進(jìn)程,
所以,之前窗口的phpsessionid就不跟著新窗口走,導(dǎo)致獲取不到.
我自己的測(cè)試使用的是ietest,6/7/8(9啟動(dòng)不起來,不確定),都出現(xiàn)相同的情況.
但是使用windows自帶的ie10測(cè)試不存在此情況.
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 跳出頁(yè)面
<?php
session_start();
var_dump( $_SESSION,$_COOKIE);
從測(cè)試中看到,如果cookie設(shè)置是延后定時(shí)失效,而非進(jìn)程級(jí)的,那在open后也能看到,
所以,針對(duì)此情況,防止用戶在使用ie內(nèi)核出現(xiàn)登錄狀態(tài)丟失,可以配合cookie來使用,
php配置提供一個(gè)方式是自動(dòng)把sid加到uri中,但是對(duì)于相對(duì)路徑并不會(huì)自動(dòng)添加,
只不過,cookie被禁用這種極端情況,極少遇到,
cookie+session足夠應(yīng)付常用情況了.
經(jīng)過使用下面的測(cè)試代碼測(cè)試發(fā)現(xiàn),是因?yàn)閜hpsessionid儲(chǔ)存是進(jìn)程級(jí)的有效期,只有同一進(jìn)程才能獲取得到,很多人說,open后或是target="_blank",都是會(huì)打開新的ie進(jìn)程,
所以,之前窗口的phpsessionid就不跟著新窗口走,導(dǎo)致獲取不到.
我自己的測(cè)試使用的是ietest,6/7/8(9啟動(dòng)不起來,不確定),都出現(xiàn)相同的情況.
但是使用windows自帶的ie10測(cè)試不存在此情況.
chrome也是多線程,但是并不存在此情況.
firefox不存在此情況.
index.php
復(fù)制代碼 代碼如下:
<?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 跳出頁(yè)面
復(fù)制代碼 代碼如下:
<?php
session_start();
var_dump( $_SESSION,$_COOKIE);
從測(cè)試中看到,如果cookie設(shè)置是延后定時(shí)失效,而非進(jìn)程級(jí)的,那在open后也能看到,
所以,針對(duì)此情況,防止用戶在使用ie內(nèi)核出現(xiàn)登錄狀態(tài)丟失,可以配合cookie來使用,
php配置提供一個(gè)方式是自動(dòng)把sid加到uri中,但是對(duì)于相對(duì)路徑并不會(huì)自動(dòng)添加,
只不過,cookie被禁用這種極端情況,極少遇到,
cookie+session足夠應(yīng)付常用情況了.
您可能感興趣的文章:
- asp.net 修改/刪除站內(nèi)目錄操作后Session丟失問題
- JQuery上傳插件Uploadify使用詳解及錯(cuò)誤處理
- asp.net刪除文件session丟失
- IIS服務(wù)器中 ASP.NET State Service 開啟后 Session 仍容易丟失的問題終極解決辦法
- asp.net 刪除項(xiàng)目文件/文件夾IIS重啟,Session丟失問題
- ASP.NET在IE10中無法判斷用戶已登入及Session丟失問題解決方法
- uploadify在Firefox下丟失session問題的解決方法
- iis7中session丟失的解決方法小結(jié)
- Session丟失的解決辦法小結(jié)
- 解決uploadify使用時(shí)session發(fā)生丟失問題的方法
相關(guān)文章
flash用php連接數(shù)據(jù)庫(kù)的代碼
flash用php連接數(shù)據(jù)庫(kù)的代碼,需要的朋友可以參考下。2011-04-04php計(jì)算兩個(gè)整數(shù)的最大公約數(shù)常用算法小結(jié)
這篇文章主要介紹了php計(jì)算兩個(gè)整數(shù)的最大公約數(shù)常用算法,實(shí)例總結(jié)了求最大公約數(shù)的三種常用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03PHP得到mssql的存儲(chǔ)過程的輸出參數(shù)功能實(shí)現(xiàn)
在開發(fā)過程中可能會(huì)遇到無法取得MSSQL存儲(chǔ)過程的輸出參數(shù),很多朋友都不知道該怎么辦,本文將詳細(xì)介紹PHP得到mssql的存儲(chǔ)過程的輸出參數(shù)功能實(shí)現(xiàn)2012-11-11php-fpm優(yōu)化總結(jié)經(jīng)驗(yàn)分享
這篇文章主要為大家介紹了php-fpm優(yōu)化總結(jié)的經(jīng)驗(yàn)分享,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08