您好,登錄后才能下訂單哦!
PHP如何使用Cookie?針對這個問題,這篇文章給出了相對應的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。
Cookie是存儲在客戶端計算機上的文本文件,它們保留用于跟蹤目的。PHP透明地支持HTTP cookie。
識別回歸用戶涉及三個步驟
● 服務器腳本將一組cookie發送到瀏覽器。例如年齡等。
● 瀏覽器將此信息存儲在本地計算機上以供將來使用
● 當下次瀏覽器向Web服務器發送任何請求時,它會將這些cookie信息發送到服務器,服務器使用該信息來識別用戶。
本章將教您如何設置cookie,如何訪問它們以及如何刪除它們。
Cookie的剖析
Cookie通常設置在HTTP標頭中(盡管JavaScript也可以直接在瀏覽器上設置cookie)。設置cookie的PHP腳本可能會發送看起來像這樣的標題(瀏覽器F12,network(網絡)可以看到)
HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=jc2182.com Connection: close Content-Type: text/html
如您所見,Set-Cookie標頭包含名稱值對,GMT日期,路徑和域。名稱和值將進行URL編碼。expires字段是瀏覽器在給定時間和日期之后刪除cookie的指令。如果瀏覽器配置為存儲cookie,則會將此信息保留到有效期。如果用戶將瀏覽器指向與cookie的路徑和域匹配的任何頁面,它會將cookie重新發送到服務器。瀏覽器的標題可能如下所示
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz
然后,PHP腳本可以訪問環境變量$_COOKIE,其中包含所有cookie名稱和值。
用PHP設置Cookies
PHP提供了setcookie()函數來設置cookie。此函數最多需要六個參數,應在<html>標記之前調用。對于設置每一個cookie,必須單獨調用此函數。
setcookie(name, value, expire, path, domain, security);
這是所有參數的細節
● name - 設置cookie的名稱。
● value - 設置命名變量的值,并且是您實際要存儲的內容。
● expire - 這指定自1970年1月1日格林尼治標準時間00:00:00以來的未來時間(以秒為單位)。在此之后,cookie將無法訪問。如果未設置此參數,則在Web瀏覽器關閉時cookie將自動過期。
● path - 指定cookie有效的目錄。單個正斜杠字符允許cookie對所有目錄有效。
● domain - 這可用于在非常大的域中指定域名,并且必須至少包含兩個有效期。所有cookie僅對創建它們的主機和域有效。
● security - 可以設置為1以指定cookie應僅通過使用HTTPS的安全傳輸發送,否則設置為0,這意味著cookie可以通過常規HTTP發送。
以下示例將創建兩個cookie 名稱和年齡,這些cookie將在一小時后過期。
<?php setcookie("name", "John Watkin", time()+3600, "/","", 0); setcookie("age", "36", time()+3600, "/", "", 0); ?> <html> <head> <title>用PHP設置Cookies</title> </head> <body> <?php echo "設置 Cookies"?> </body> </html>
提示:time()函數返回的是當前的時間戳,也就是1970年1月一日0點0分0秒到腳本執行的那一刻的秒數。
打開瀏覽器訪問腳本,然后按F12打開開發者模式,選擇Network(網絡)選項卡,選擇Headers,可以看到如下圖所示:
使用PHP訪問Cookie
PHP提供了許多訪問cookie的方法。最簡單的方法是使用$_COOKIE變量。以下示例將訪問上面示例中設置的所有cookie。
<html> <head> <title>用PHP訪問cookie</title> </head> <body> <?php echo $_COOKIE["name"]. "<br />"; echo $_COOKIE["age"] . "<br />"; ?> </body> </html>
您可以使用isset()函數來檢查是否設置了cookie。如果設置了再進行輸出。
<html> <head> <title>用PHP訪問cookie</title> </head> <body> <?php if(isset($_COOKIE["name"])) echo $_COOKIE["name"]. "<br />"; if(isset($_COOKIE["age"])) echo $_COOKIE["age"] . "<br />"; ?> </body> </html>
用PHP刪除Cookie
正式地說,要刪除一個cookie,你應該只使用name參數調用setcookie()[也就是說想刪除那個name,把他設置成空],但這并不總是有效,不應該依賴。最安全的做法是設置一個已經過期的日期
/ 設置過去時間為當前時間的之前的60秒 /
<?php /* 設置過去時間為當前時間的之前的60秒 */ setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?> <html> <head> <title>用PHP刪除cookie</title> </head> <body> <?php echo "刪除cookie" ?> </body> </html>
以上便是PHP使用Cookie的方法,雖然從篇幅上看很復雜,但是示例代碼非常詳細且容易理解,如果想了解更多相關內容,請關注億速云行業資訊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。