首頁  >  文章  >  後端開發  >  php中如何讀取Cookie

php中如何讀取Cookie

伊谢尔伦
伊谢尔伦原創
2017-04-25 13:39:036165瀏覽

     如果 Cookie 設定成功,客戶端就擁有了 Cookie 文件,用來保存 Web 伺服器為期設定的使用者資訊。假設我們在客戶端使用了 Windows 系統去瀏覽伺服器中的腳本, Cookie 檔案會被存放在 “ C:\Documents and Settings\ 使用者名稱\ Cookies” 資料夾下。 Cookie 是一個以普通文字檔案形式記錄資訊的,雖然直接使用文字編輯器就可以開啟瀏覽,但直接去閱讀 Cookie 檔案中的資訊是沒有意義的。而是當客戶再次造訪該網站時,瀏覽器會自動把與該網站對應的 Cookie 資訊全部傳送給伺服器。 從PHP5之後,任何從客戶端傳送過來的Cookie訊息,都會自動儲存在$_COOKIE 全域陣列中,所以在每個PHP腳本中都可以從該陣列中讀取對應的Cookie訊息。 $_COOKIE 全域數組儲存所有透過 HTTP 傳遞的  Cookie 資料內容,並以 Cookie 的識別名稱為索引值、內容值為元素。

       在設定Cookie 腳本中,第一次讀取它的資訊並不會生效,必須刷新或到下一個頁面才可以看到Cookie 值,因為Cookie 要先設定到客戶端,再一次訪問時才能被發送過來,這是才能被獲取。所以要測試一個 Cookie 是否成功設定,可以再其到期之前 透過另一個頁面來存取其的值。

在PHP中可以直接透過超全域變數陣列 $_COOKIE[] 來讀取瀏覽器端的 Cookie 值。

實例程式碼如下所示:

<?php
  date_default_timezone_set(&#39;PRC&#39;);       //设置时区
 if(!isset($_COOKIE[&#39;time&#39;])){                //检测 Cookie 文件是否存在
    setcookie(&#39;time&#39;,date(&#39;y-m-d H:i:s&#39;));    //设置一个 Cookie 变量
    echo "第一次访问";
 }else{
    setcookie(&#39;time&#39;,date(&#39;y-m-d H:i:s&#39;),time()+60);   //设置保存  Cookie 失效的时间的变量
    echo "上次访问的时间为:".$_COOKIE[&#39;time&#39;];        //输出上次访问网站的时间
    echo &#39;<br>&#39;;
 }
    echo "本次访问的时间为:".date(&#39;y-m-d H:i:s&#39;);     //输出当前的访问时间
?>

在上面的程式碼中,首先使用 isset()函數偵測 Cookie 檔案是否存在。如果不存在,則使用setcookie() 函數建立一個Cookie,並輸出對應的字串;如果Cookie 檔案存在,則使用setcookie() 函數設定檔案失效的時間,並輸出使用者上次訪問網站的時間,最後在頁面輸出本次方位網站的當前時間。

第一次執行實例時,由於沒有偵測到Cookie 文件,執行結果圖如下所示:

php中如何讀取Cookie

如果使用者在 Cookie 設定失效的時間(上面的實例為60秒)前刷新或再次造訪該網頁,運行結果如下:

php中如何讀取Cookie

#注意:如果未設定Cookie 失效的時間,則在關閉瀏覽器時自動刪除Cookie 資料。如果為  Cookie 設定了失效的時間,瀏覽器將會記住Cookie 數據,即使重新啟動了計算機,只要沒有到期,再造訪網站時也會獲得存取的數據資訊。

以上是php中如何讀取Cookie的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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