首頁  >  文章  >  後端開發  >  PHP中會話技術Cooki詳解

PHP中會話技術Cooki詳解

小云云
小云云原創
2018-03-31 09:49:182041瀏覽


在PHP中,所有資料(變數、常數、全域變數)的最大生命週期是一個腳本週期(即:瀏覽器向伺服器發送請求--->伺服器回應請求並將該請求交由PHP處理---->PHP處理後傳回給伺服器--->伺服器傳回瀏覽器。瀏覽器再次要求時,前一次的所有資料都會失效。

但是,很多操作,如:使用者登入操作,在使用者登入成功後,使用者再次要求時能夠不輸入密碼而直接管理後台。同時如果使用者登入失敗或沒有登入的情況下,無法直接透過後台的URL存取。這是就需要有資料能夠記錄使用者的登入狀態,使其在多個腳本週期中都能夠使用。 --------這種跨腳本週期的資料儲存機制稱為會話技術。

COOKIE會話技術---允許伺服器端腳本在瀏覽器端儲存資料的技術

原則:1.伺服器在回應請求時可以向瀏覽器端發送指令,來管理儲存在瀏覽器端的cookie資料。

            2.如果已儲存瀏覽器儲存了某伺服器所設定的cookie數據,則會在此要求時,自動攜帶儲存的cookie資料到伺服器端。


使用:

    1.伺服器中設定(增刪改查)cookie:

# setcookie(key,value);透過鍵(key)-值(value)設定對cookie資料

                   

#                               


                             


                             


    2.有效性:


        在setcookie()函數中,除了前兩者為名稱-值的設定外,第三個參數表示其有效時間。


        setcookie('name','Li',time()+60);第三個參數是一時間戳來計算的,因此time()+60表示創建後60秒過期。


        預設有效期限為會話週期結束(瀏覽器已關閉),稱為暫時性cookie。


<?php
setcookie(&#39;name&#39;,&#39;Li&#39;);
var_dump($_COOKIE[&#39;name&#39;]);


#第一次請求時,不存在cookie數據,但是瀏覽器端的cookie表中存在名為'name'的cookie數據,因此可以說,數據是在回應後,儲存於瀏覽器端。而結果中的過期時間可以看出在沒有任何設定時表現為」會話「

    在寫腳本,是用同一個瀏覽器請求:


var_dump($_COOKIE[&#39;name&#39;]);//该文件为cookie_2.php

#    因此,cookie資料在瀏覽器再次要求時會自動傳送給伺服器端。


3.有效路徑

        預設情況下,cookie在目前路徑及後代路徑有效。瀏覽器發出請求時,會先查找目前目錄內的有效cookie,再向上查找,將所有有效的cookie都攜帶到伺服器。


        可以透過setcookie()的第四個參數來修改;通常設定為『/』表示網站更目錄有效,也就是整個網站都有效。


4.有效域

        指的是cookie資料能運作的區域,預設為:僅在目前網域下有效。但可以透過第五個參數設定;

        setcookie('name','Li',0,'qq.com');此設定表示有效域可擴及其所有子網域中。

                    造成:www.qq.com//其中以qq.com為其一級網域名稱。

                            www.wx2.qq.com //wx2.qq.com且為一級網域名稱下的子網域名稱。

                             


此為IE瀏覽器上存在的cookie資料。

我們可以發現,它是以domain來區分不同的存取的,並且其路徑為‘/’,表示網站目錄都有效,expires表示失效時間。

5.僅安全傳輸(https://.......表示加密的http協定)

    透過將setcookie()的第六個參數為true,可以開啟僅安全傳輸選項。開啟後,只有https://....請求時才會將該cookie資料攜帶給服務端。而預設的false表示不開啟安全傳輸,也就是所有的請求方式均可以得到該cookie資料。

6.HTTPONLY

    透過設定setcookie()的第七個參數為true,可以開啟HTTPONLY選項,該選項表示只有http請求的時候才能得到cookie數據,而透過javascript等腳本無法得到目前的cookie資料。

注意:1.cookie值僅支援字串類型(對於數字類型的資料可以轉換為字串後在設定)。

            2.cookie的鍵,可寫成陣列下標的形式。

                        setcookie('student[name],     setcookie('student[gender]','Male');

#                       

相關推薦:


總結會話技術COOKIE、SESSION的實例

PHP基礎教學十七之會話技術COOKIE、SESSION

php會話技術之cookie的例子

以上是PHP中會話技術Cooki詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP 中的 PDO下一篇:PHP 中的 PDO