最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php cookie 作用范圍–不要在當(dāng)前頁面使用你的cookie

 更新時間:2009年03月24日 00:26:47   作者:  
這兩天在調(diào)試bug的時候遇到了一個問題,就是頁面莫名其妙的會跳轉(zhuǎn)到登陸頁面
因為在本地測試完全沒有問題,所以ssh到遠(yuǎn)程服務(wù)器上(不是發(fā)布服務(wù)器,建議不要直接在Publish Server上直接改東西),進(jìn)行了一下斷點(diǎn)的測試,最后發(fā)現(xiàn)是一個比較復(fù)雜的邏輯中有個函數(shù)在構(gòu)造函數(shù)中調(diào)用了登陸驗證。沒有驗證通過所以就跳走了。
下面我們通過程序來看一下php cookie的使用,也許你看完上面那段還納悶,這個和cookie有什么聯(lián)系呢?
大體說一下在我們的MVC結(jié)構(gòu)中所用的登陸驗證:
在controller中的構(gòu)造函數(shù)用有一個專門驗證登陸的函數(shù),根據(jù)模塊是否需要登陸驗證來加如此函數(shù)。
bug程序:在setcookie后,當(dāng)前頁面進(jìn)行了登陸驗證。
bug原因:當(dāng)前頁面是獲得不了在此頁剛剛設(shè)置的cookie的
下面我們來用程序測試一下:
這里是一個設(shè)置cookie的函數(shù),我們現(xiàn)在用的,偷懶了 呵呵
復(fù)制代碼 代碼如下:

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)容如下:
復(fù)制代碼 代碼如下:

<?php
$td = date('d');
dsetcookie("testvar",$td,30*24*60*60);
print_r($_COOKIE);
?>

將會得到一個空的數(shù)組array();
那我們在設(shè)置完后什么時候才能第一次使用這個$_COOKIE變量呢?
現(xiàn)在我們把test1.php這個程序稍微改動一下:
復(fù)制代碼 代碼如下:

<?php
$td = date('d');
dsetcookie("testvar",$td,30*24*60*60);
print_r($_COOKIE);//這個要注釋掉 要不然會報header警告
$location = "test2.php";
header("Location: ".$location);
?>

然后我們在test2.php中來顯示$_COOKIE看一下
復(fù)制代碼 代碼如下:

<?php
print_r($_COOKIE);
?>

這里我們將會得到:
Array
(
[testvar] =10
)
這里就能夠獲得并使用這個cookie值了。
為什么呢?
你可以這么理解:當(dāng)前設(shè)置的Cookie不是立即生效的,而是要等到下一個頁面時才能看到.
這是由于在設(shè)置的這個頁面里Cookie由服務(wù)器傳遞給客戶瀏覽器,在下一個頁面瀏覽器才能把Cookie從
客戶的機(jī)器里取出傳回服務(wù)器的原因。

先寫到這里:

你可以通過下面的幾個鏈接更加深入的了解一下COOKIE

PHP COOKIE及其使用

Netscape公司關(guān)于Cookie的官方原始定義的網(wǎng)址:http://www.netscape.com/newsref/std/cookie_spec.html

相關(guān)文章

  • php 多線程上下文中安全寫文件實現(xiàn)代碼

    php 多線程上下文中安全寫文件實現(xiàn)代碼

    提供一個php多線程上下文中安全寫文件的實現(xiàn)方法。這個實現(xiàn)沒有使用php 的file lock機(jī)制,使用的是臨時文件機(jī)制。多線程中的各個線程都是對各自(每個線程獨(dú)占一個)的臨時文件寫,然后再同步到原文件中。
    2009-12-12
  • php拋出異常與捕捉特定類型的異常詳解

    php拋出異常與捕捉特定類型的異常詳解

    異常捕獲在現(xiàn)在很多ide工具里都可以用快捷鍵很方便的添加上,防止用戶看到自己看不懂的報錯甚至莫名其妙崩潰,導(dǎo)致用戶體驗不好。哪怕顯示一個友好一些的崩潰提示,也比直接顯示error:xxxx xxxxxxxxx要好得多。下面本文將詳細(xì)介紹php如何拋出異常與捕捉特定類型的異常。
    2016-10-10
  • PHP中功能強(qiáng)大卻很少使用的函數(shù)實例小結(jié)

    PHP中功能強(qiáng)大卻很少使用的函數(shù)實例小結(jié)

    這篇文章主要介紹了PHP中功能強(qiáng)大卻很少使用的函數(shù),結(jié)合實例形式總結(jié)分析了php中非常實用的幾個函數(shù),包括函數(shù)的調(diào)用、注冊、調(diào)用、判斷等操作技巧,需要的朋友可以參考下
    2016-11-11
  • PHP 自定義錯誤處理函數(shù)trigger_error()

    PHP 自定義錯誤處理函數(shù)trigger_error()

    trigger_error() 用于在用戶指定的條件下觸發(fā)一個錯誤消息。它與內(nèi)建的錯誤處理器一同使用,也可以與由 set_error_handler() 函數(shù)創(chuàng)建的用戶自定義函數(shù)使用
    2013-03-03
  • php通過smtp郵件驗證登陸的方法

    php通過smtp郵件驗證登陸的方法

    這篇文章主要介紹了php通過smtp郵件驗證登陸的方法,涉及php通過socket針對SMTP郵件服務(wù)器進(jìn)行連接、讀寫、驗證等相關(guān)操作技巧,需要的朋友可以參考下
    2016-05-05
  • PHP正則表達(dá)式 /i, /is, /s, /isU等介紹

    PHP正則表達(dá)式 /i, /is, /s, /isU等介紹

    PHP正則表達(dá)式 /i, /is, /s, /isU等,都代表著什么意思,你知道嗎?下面為大家詳細(xì)介紹下
    2014-10-10
  • PHP實現(xiàn)RabbitMQ消息列隊的示例代碼

    PHP實現(xiàn)RabbitMQ消息列隊的示例代碼

    眾所周知,php本身的運(yùn)行效率存在一定的缺陷,所以如果有一個很復(fù)雜很耗時的業(yè)務(wù)時,必須開發(fā)一個常駐內(nèi)存的程序。本文將利用PHP實現(xiàn)RabbitMQ消息列隊,感興趣的可以了解一下
    2022-05-05
  • PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計》之四 簡化條件表達(dá)式

    PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計》之四 簡化條件表達(dá)式

    條件邏輯有可能十分復(fù)雜,因此本章提供一些重構(gòu)的手法,專門用來簡化它們
    2012-04-04
  • PHP5.3安裝Zend Guard Loader圖文教程

    PHP5.3安裝Zend Guard Loader圖文教程

    PHP 5.3.X 開始 Zend Optimizer 正式被 Zend Guard Loader 取代了。安裝方法有所不同,以下是安裝 Zend Guard Loader的具體方法
    2014-09-09
  • php將12小時制轉(zhuǎn)換成24小時制的方法

    php將12小時制轉(zhuǎn)換成24小時制的方法

    這篇文章主要介紹了php將12小時制轉(zhuǎn)換成24小時制的方法,涉及php時間操作的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03

最新評論

甘谷县| 安徽省| 大悟县| 诸暨市| 江永县| 汾西县| 漳平市| 同心县| 贞丰县| 恭城| 怀来县| 赤城县| 张家口市| 隆子县| 梁河县| 无极县| 西和县| 邵武市| 尼玛县| 体育| 宿松县| 天津市| 三原县| 昭平县| 新干县| 大宁县| 建平县| 巴楚县| 黑龙江省| 绥德县| 定陶县| 贞丰县| 同心县| 历史| 嘉义市| 福州市| 竹北市| 双柏县| 张家界市| 沂源县| 许昌县|