PHP中cookie與session詳解

2021-10-07 22:31:07 字數 3513 閱讀 8396

如何取回 cookie 的值?

如何刪除 cookie?

2.session

1.cookie

cookie 是什麼?

cookie 常用於識別使用者。cookie 是一種伺服器留在使用者計算機上的小檔案。每當同一臺計算機通過瀏覽器請求頁面時,這台計算機將會傳送 cookie。通過 php,您能夠建立並取回 cookie 的值。

如何建立 cookie?

setcookie() 函式用於設定 cookie。

**注釋:**setcookie() 函式必須位於 標籤之前。

語法

setcookie

(name, value, expire, path, domain)

;

例項 1

在下面的例子中,我們將建立名為 「user」 的 cookie,並為它賦值 「runoob」。我們也規定了此 cookie 在一小時後過期:

<?php

setcookie

("user"

,"runoob"

,time()

+3600);

?>

....

.

**注釋:**在傳送 cookie 時,cookie 的值會自動進行 url 編碼,在取回時進行自動解碼。(為防止 url 編碼,請使用 setrawcookie() 取而代之。)

例項 2

您還可以通過另一種方式設定 cookie 的過期時間。這也許比使用秒表示的方式簡單。

<?php

$expire

=time()

+60*60

*24*30

;setcookie

("user"

,"runoob"

,$expire);

?>

....

.

在上面的例項中,過期時間被設定為乙個月(60 秒 * 60 分 * 24 小時 * 30 天)。

如何取回 cookie 的值?

php 的 $_cookie 變數用於取回 cookie 的值。

在下面的例項中,我們取回了名為 「user」 的 cookie 的值,並把它顯示在了頁面上:

<?php

// 輸出 cookie 值

echo

$_cookie

["user"];

// 檢視所有 cookie

print_r

($_cookie);

?>

在下面的例項中,我們使用 isset() 函式來確認是否已設定了 cookie:

"utf-8"

>

菜鳥教程(runoob.com)

<

/title>

<

/head>

<?phpif(

isset

($_cookie

["user"])

)echo

"歡迎 "

.$_cookie

["user"].

"!";else

echo

"普通訪客!";

?>

<

/body>

<

/html>

如何刪除 cookie?

當刪除 cookie 時,您應當使過期日期變更為過去的時間點。

刪除的例項:

<?php

// 設定 cookie 過期時間為過去 1 小時

setcookie

("user",""

,time()

-3600);

?>

2.session

php session 變數用於儲存關於使用者會話(session)的資訊,或者更改使用者會話(session)的設定。session 變數儲存單一使用者的資訊,並且對於應用程式中的所有頁面都是可用的。

開始 php session

在您把使用者資訊儲存到 php session 中之前,首先必須啟動會話。

**注釋:**session_start() 函式必須位於 標籤之前:

<?php

session_start()

;?>

<

/body>

<

/html>

上面的**會向伺服器註冊使用者的會話,以便您可以開始儲存使用者資訊,同時會為使用者會話分配乙個 uid。

儲存 session 變數

儲存和取回 session 變數的正確方法是使用 php $_session 變數:

<?php

session_start()

;// 儲存 session 資料

$_session

['views']=

1;?>

"utf-8"

>

菜鳥教程(runoob.com)

<

/title>

<

/head>

<?php

// 檢索 session 資料

echo

"瀏覽量:"

.$_session

['views'];

?>

<

/body>

<

/html>

在下面的例項中,我們建立了乙個簡單的 page-view 計數器。isset() 函式檢測是否已設定 「views」 變數。如果已設定 「views」 變數,我們累加計數器。如果 「views」 不存在,則建立 「views」 變數,並把它設定為 1:

<?php

session_start()

;if(isset

($_session

['views'])

)else

echo

"瀏覽量:"

.$_session

['views'];

?>

銷毀 session

如果您希望刪除某些 session 資料,可以使用 unset() 或 session_destroy() 函式。

unset() 函式用於釋放指定的 session 變數:

<?php

session_start()

;if(isset

($_session

['views'])

)?>

您也可以通過呼叫 session_destroy() 函式徹底銷毀 session:

<?php

session_destroy()

;?>

**注釋:**session_destroy() 將重置 session,您將失去所有已儲存的 session 資料。

php使用者登入驗證cookie與session區別

php高效能高流量使用者登入驗證機制用cookie 還是 session?一 cookie 區別session?cookie客戶端 session存在伺服器端 session安全。二 session在分布式上存在難點。這一點memcache可能會解決一些。但如果不用memcache,解決起來問題大....

Django之元件 cookie與session

cookie 由伺服器產生,存放在客戶端瀏覽器上的鍵值對。設定值 取值 request.cookies.get key request.cookies key 刪除值 session 儲存在伺服器上的鍵值對。設定值 request.session key value request.session ...

Python爬蟲之Cookie和Session

關於cookie和session估計很多程式設計師面試的時候都會被問到,這兩個概念在寫web以及爬蟲中都會涉及,並且兩者可能很多人直接回答也不好說的特別清楚,所以整理這樣一篇文章,也幫助自己加深理解 其實簡單的說就是當使用者通過http協議訪問乙個伺服器的時候,這個伺服器會將一些name value...