|
經(jīng)過(guò)使用下面的測(cè)試代碼測(cè)試發(fā)現(xiàn),是因?yàn)?a href=/itjie/phpjishu/ target=_blank class=infotextkey>phpsessionid儲(chǔ)存是進(jìn)程級(jí)的有效期,只有同一進(jìn)程才能獲取得到,很多人說(shuō),open后或是target="_blank",都是會(huì)打開(kāi)新的ie進(jìn)程,
所以,之前窗口的phpsessionid就不跟著新窗口走,導(dǎo)致獲取不到.
我自己的測(cè)試使用的是ietest,6/7/8(9啟動(dòng)不起來(lái),不確定),都出現(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來(lái)使用,
php配置提供一個(gè)方式是自動(dòng)把sid加到uri中,但是對(duì)于相對(duì)路徑并不會(huì)自動(dòng)添加,
只不過(guò),cookie被禁用這種極端情況,極少遇到,
cookie+session足夠應(yīng)付常用情況了.
php技術(shù):ie與session丟失(新窗口cookie丟失)實(shí)測(cè)及解決方案,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。