php cookie 作用范圍–不要在當(dāng)前頁(yè)面使用你的cookie
下面我們通過程序來(lái)看一下php cookie的使用,也許你看完上面那段還納悶,這個(gè)和cookie有什么聯(lián)系呢?
大體說一下在我們的MVC結(jié)構(gòu)中所用的登陸驗(yàn)證:
在controller中的構(gòu)造函數(shù)用有一個(gè)專門驗(yàn)證登陸的函數(shù),根據(jù)模塊是否需要登陸驗(yàn)證來(lái)加如此函數(shù)。
bug程序:在setcookie后,當(dāng)前頁(yè)面進(jìn)行了登陸驗(yàn)證。
bug原因:當(dāng)前頁(yè)面是獲得不了在此頁(yè)剛剛設(shè)置的cookie的
下面我們來(lái)用程序測(cè)試一下:
這里是一個(gè)設(shè)置cookie的函數(shù),我們現(xiàn)在用的,偷懶了 呵呵
function dsetcookie($var, $value, $life = 0) {
global $_cookie_domain, $_cookie_path, $_timestamp, $_SERVER;
setcookie($var, escape($value), $life ? $_timestamp + $life : 0,
$_cookie_path, $_cookie_domain, $_SERVER['SERVER_PORT'] == 443 ? 1 : 0);
}
然后建立test1.php,內(nèi)容如下:
<?php
$td = date('d');
dsetcookie("testvar",$td,30*24*60*60);
print_r($_COOKIE);
?>
將會(huì)得到一個(gè)空的數(shù)組array();
那我們?cè)谠O(shè)置完后什么時(shí)候才能第一次使用這個(gè)$_COOKIE變量呢?
現(xiàn)在我們把test1.php這個(gè)程序稍微改動(dòng)一下:
<?php
$td = date('d');
dsetcookie("testvar",$td,30*24*60*60);
print_r($_COOKIE);//這個(gè)要注釋掉 要不然會(huì)報(bào)header警告
$location = "test2.php";
header("Location: ".$location);
?>
然后我們?cè)趖est2.php中來(lái)顯示$_COOKIE看一下
<?php
print_r($_COOKIE);
?>
這里我們將會(huì)得到:
Array
(
[testvar] =10
)
這里就能夠獲得并使用這個(gè)cookie值了。
為什么呢?
你可以這么理解:當(dāng)前設(shè)置的Cookie不是立即生效的,而是要等到下一個(gè)頁(yè)面時(shí)才能看到.
這是由于在設(shè)置的這個(gè)頁(yè)面里Cookie由服務(wù)器傳遞給客戶瀏覽器,在下一個(gè)頁(yè)面瀏覽器才能把Cookie從
客戶的機(jī)器里取出傳回服務(wù)器的原因。
先寫到這里:
你可以通過下面的幾個(gè)鏈接更加深入的了解一下COOKIE
Netscape公司關(guān)于Cookie的官方原始定義的網(wǎng)址:http://www.netscape.com/newsref/std/cookie_spec.html
相關(guān)文章
PHP生成可點(diǎn)擊刷新的驗(yàn)證碼簡(jiǎn)單示例
這篇文章主要介紹了PHP生成可點(diǎn)擊刷新的驗(yàn)證碼,結(jié)合簡(jiǎn)單實(shí)例形式分析了php驗(yàn)證碼的實(shí)現(xiàn)與調(diào)用顯示方法,涉及js動(dòng)態(tài)調(diào)用驗(yàn)證碼php文件的相關(guān)技巧,需要的朋友可以參考下2016-05-05php實(shí)現(xiàn)圖片文件與下載文件防盜鏈的方法
這篇文章主要介紹了php實(shí)現(xiàn)圖片文件與下載文件防盜鏈的方法,包括了常用的操作方法與服務(wù)器端配置方法等,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11php針對(duì)cookie操作的隊(duì)列操作類實(shí)例
這篇文章主要介紹了php針對(duì)cookie操作的隊(duì)列操作類,以實(shí)例形式分析了設(shè)置cookie的常見方法,以及隊(duì)列操作cookie的方法,最后給出了針對(duì)常見問題的總結(jié),需要的朋友可以參考下2014-12-12php實(shí)現(xiàn)根據(jù)詞頻生成tag云的方法
這篇文章主要介紹了php實(shí)現(xiàn)根據(jù)詞頻生成tag云的方法,涉及php分析與操作字符串以及標(biāo)簽云的生成技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04PHP中使用Session配合Javascript實(shí)現(xiàn)文件上傳進(jìn)度條功能
這篇文章主要介紹了PHP中使用Session配合Javascript實(shí)現(xiàn)文件上傳進(jìn)度條功能,本文講解了實(shí)現(xiàn)原理,并給出了完整實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-10-10PHP自定義函數(shù)實(shí)現(xiàn)數(shù)組比較功能示例
這篇文章主要介紹了PHP自定義函數(shù)實(shí)現(xiàn)數(shù)組比較功能,涉及php針對(duì)數(shù)組的遍歷、比較、判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10在WordPress中使用PHP腳本來(lái)判斷訪客來(lái)自什么國(guó)家
這篇文章主要介紹了在WordPress中使用PHP腳本來(lái)判斷訪客來(lái)自什么國(guó)家的方法,同時(shí)也可以調(diào)用文中所介紹的國(guó)內(nèi)網(wǎng)站所提供的API來(lái)查詢,需要的朋友可以參考下2015-12-12