您好,登錄后才能下訂單哦!
這篇文章主要講解了“PHP中如何完成Cookie的創建、讀取和刪除”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP中如何完成Cookie的創建、讀取和刪除”吧!
在我們的日常生活中,登錄一個網站上面會有你上次登錄中斷時留下的信息,購物車上也會看到你在不同頁面看到的商品,這些都是網站用來辨認使用者的一種手段,為了能夠方便的給使用者進行推送內容。想要實現這樣復雜的功能就需要通過cookie,那么我們就來了解一下什么是Cookie。它有哪些用途以及怎樣去創建、讀取和刪除。
什么是Cookie
通過cookie就可以實現很多功能,那么什么是cookie?cookie是在HTTP協議下,將服務器傳遞給瀏覽器的少量數據保存在用戶瀏覽器的一種方式。比如它可以保存一些用戶的信息,這樣的話即使瀏覽器關閉或者連接中斷的情況,用戶仍然可以維護這些數據。
也可以理解為,cookie就是將瀏覽器網頁的特定信息以文件的形式保存在客戶端硬盤中,當你再次訪問這個網站的時候,瀏覽器就會先讀取這個cookie文件,讀取到的數據就提供給瀏覽器。這樣的話就實現了類似用戶的網頁有一些個性化的設置,再次打開會保存下來這樣的效果。這就是通過cookie將它們展示出來。
Cookie
的主要用途
cookie的用途有很多,cookie中的信息有很多種,服務器就可以利用cookie包含信息的這用任意性來進行篩選信息并且維護信息,這樣做的目的是為了判斷HTTP傳輸中的狀態。cookie最典型的應用我們日常中也是很常見的,就是去判斷一個注冊的用戶是否已經登陸了網站,還有就是商城中類似購物車中的功能。
下面跟大家總結一下cookie常用于以下三個方面:
記錄用戶的一些信息;類似于上文中說到的用戶個性化設置。
在頁面之間傳遞數據;也就是一個頁面的數據要在另一個頁面使用時。
將查看的Web網頁儲存在cookie臨時文件中,可以加快網頁的訪問速度。
其中我們需要注意到的是,一般不建議使用cookie來保存數據集或者較大的數據,同時并不是所有的瀏覽器都會支持cookie,并且數據信息都是按著文本的形式保存的,為了不影響網站的安全性,最好不要有敏感未加密的數據保存。
創建cookie
在PHP中創建cookie的話需要setcookie()
函數,創建cookie中我們需要注意的是,cookie是HTTP響應頭部的組成部分,響應頭部它必須最先輸出。若是setcookie()函數前輸出一個HTML或者空行、echo什么的都可能會導致程序出錯。
setcookie()
函數的語法格式如下:
setcookie(string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]])
其中我們需要注意的是:
$name
---表示設置 Cookie 的名稱;
$value
---是可選參數,可以用來設置 Cookie 的值;
$expire
---是可選參數,用來設置 Cookie 的過期時間,這個時間是 Unix 時間戳的形式。cookie有些是臨時的有些是持續的,臨時的在瀏覽器上會存在一定的時間,一旦超過規定的時間該cookie就會被系統清除。
$path
---可選參數,用來設置 Cookie 有效的服務器路徑。
$domain
---可選參數,用來設置 Cookie 的有效域名/子域名。
$secure
---可選參數,用來設置這個 Cookie 是否僅僅通過安全的 HTTPS 連接傳給客戶端。
接下來通過示例看一下創建cookie:
<?php setcookie('Website', '好好學習'); setcookie('Title', 'Cookie', time()+3600); // 設置 Cookie 1 小時后過期 echo '<pre>'; print_r($_COOKIE); ?>
輸出結果:
在運行時我們需要注意的是:當第一次運行這個腳本文件時并不會有任何輸出信息,因此設置完 Cookie 后需要刷新一下頁面,這樣在下次請求時 HTTP 頭部才會攜帶上一次設置的 Cookie 信息,這時才能讀取到 Cookie。
讀取cookie
在PHP中,想要讀取cookie就需要使用超級全局變量$_COOKIE
,$_COOKIE
是一個儲存著所有信息的數組,它的語法格式如下:
$_COOKIE['Cookie 名稱']
實例如下:
<?php setcookie('Website', '好好學習'); setcookie('Title', 'Cookie', time()+3600); // 設置 Cookie 1 小時后過期 echo '<pre>'; print_r($_COOKIE); echo 'Website 的值為:'.$_COOKIE['Website'].'<br>'; echo 'Title 的值為:'.$_COOKIE['Title']; ?>
輸出結果:
由此我們邊通過$_COOKIE 讀取到了cookie的值。
刪除cookie
我們在上文中說,可以給臨時的cookie設置一個時間,當時間過了之后,系統會自動刪除這個cookie,那能不能夠當 Cookie 被創建后,沒有設置它的失效時間,其 Cookie 文件會在關閉瀏覽器時被自動刪除。如果要在關閉瀏覽器之前刪除 Cookie 文件,同樣需要使用 setcookie()
函數。
刪除 Cookie 和創建 Cookie 的方式基本類似,只需要使用 setcookie() 函數將 Cookie 的值(也就是第二個參數)設置為空,或者將 Cookie 的過期時間(也就是第三個參數)設置為小于系統的當前時間即可。
實例如下:
<?php setcookie('Website',''); setcookie('Title','Cookie',time()-1); echo '<pre>'; print_r($_COOKIE); ?>
輸出結果:
如此我們便完成了刪除cookie的值。
感謝各位的閱讀,以上就是“PHP中如何完成Cookie的創建、讀取和刪除”的內容了,經過本文的學習后,相信大家對PHP中如何完成Cookie的創建、讀取和刪除這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。