首頁 >後端開發 >php教程 >PHP中怎樣完成Cookie的建立、讀取和刪除?

PHP中怎樣完成Cookie的建立、讀取和刪除?

WBOY
WBOY原創
2021-10-26 10:32:224975瀏覽

在之前的文章中為大家帶來了《五分鐘帶你了解PHP中的魔術方法(實例詳解)》,其中詳細給大家介紹了PHP中常用的魔術方法,本篇我們來看看PHP中cookie的相關知識,希望對大家有幫助!

PHP中怎樣完成Cookie的建立、讀取和刪除?

在我們的日常生活中,登入一個網站上面會有你上次登入中斷時留下的訊息,購物車上也會看到你在不同頁面看到的商品,這些都是網站用來辨識使用者的一種手段,為了能夠方便的給使用者進行推播內容。想要實現這樣複雜的功能就需要通過cookie,那麼我們就來了解一下什麼是Cookie。它有哪些用途以及怎麼去建立、讀取和刪除。

什麼是Cookie

#透過cookie就可以實現很多功能,那麼什麼是cookie? cookie是在HTTP協定下,將伺服器傳遞給瀏覽器的少量資料保存在使用者瀏覽器的一種方式。例如它可以保存一些用戶的信息,這樣的話即使瀏覽器關閉或連接中斷的情況,用戶仍然可以維護這些數據。

也可以理解為,cookie就是將瀏覽器網頁的特定資訊以文件的形式保存在客戶端硬碟中,當你再次造訪這個網站的時候,瀏覽器就會先讀取這個cookie文件,讀取到的資料就提供給瀏覽器。這樣的話就實現了類似用戶的網頁有一些個性化的設置,再次打開會保存下來這樣的效果。這就是透過cookie將它們展示出來。

<strong><span style="font-size: 20px;">Cookie</span></strong>#的主要用途

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(&#39;Website&#39;, &#39;好好学习&#39;);
    setcookie(&#39;Title&#39;, &#39;Cookie&#39;, time()+3600);  // 设置 Cookie 1 小时后过期
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    print_r($_COOKIE);
?>

輸出結果:

PHP中怎樣完成Cookie的建立、讀取和刪除?

##在運行時我們需要注意的是:當第一次運行這個腳本文件時並不會有任何輸出信息,因此設置完Cookie 後需要刷新一下頁面,這樣在下次請求時HTTP 頭部才會攜帶上一次設定的Cookie 訊息,這時才能讀取到Cookie。

讀取cookie#

在PHP中,想要读取cookie就需要使用超级全局变量$_COOKIE$_COOKIE是一个储存着所有信息的数组,它的语法格式如下:

$_COOKIE[&#39;Cookie 名称&#39;]

实例如下:

<?php
    setcookie(&#39;Website&#39;, &#39;好好学习&#39;);
    setcookie(&#39;Title&#39;, &#39;Cookie&#39;, time()+3600);  // 设置 Cookie 1 小时后过期
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    print_r($_COOKIE);
    echo &#39;Website 的值为:&#39;.$_COOKIE[&#39;Website&#39;].&#39;<br>&#39;;
    echo &#39;Title 的值为:&#39;.$_COOKIE[&#39;Title&#39;];
?>

输出结果:

PHP中怎樣完成Cookie的建立、讀取和刪除?

由此我们边通过$_COOKIE 读取到了cookie的值。

删除cookie

我们在上文中说,可以给临时的cookie设置一个时间,当时间过了之后,系统会自动删除这个cookie,那能不能够当 Cookie 被创建后,没有设置它的失效时间,其 Cookie 文件会在关闭浏览器时被自动删除。如果要在关闭浏览器之前删除 Cookie 文件,同样需要使用 setcookie() 函数。

删除 Cookie 和创建 Cookie 的方式基本类似,只需要使用 setcookie() 函数将 Cookie 的值(也就是第二个参数)设置为空,或者将 Cookie 的过期时间(也就是第三个参数)设置为小于系统的当前时间即可。

实例如下:

<?php
    setcookie(&#39;Website&#39;,&#39;&#39;);
    setcookie(&#39;Title&#39;,&#39;Cookie&#39;,time()-1);
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    print_r($_COOKIE);
?>

输出结果:

PHP中怎樣完成Cookie的建立、讀取和刪除?

如此我们便完成了删除cookie的值。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上是PHP中怎樣完成Cookie的建立、讀取和刪除?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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