PHP操做cookie和session

Cookie是什麼?

cookie 經常使用於識別用戶。cookie 是一種服務器留在用戶計算機上的小文件。每當同一臺計算機經過瀏覽器請求頁面時,這臺計算機將會發送 cookie。php

建立Cookie

setcookie()函數用於設置cookiehtml

註釋:setcookie()函數必須位於<html>標籤以前。瀏覽器

實例1,建立名爲 "user" 的 cookie,併爲它賦值 "runoob"。咱們也規定了此 cookie 在一小時後過時:服務器

<?php setcookie("user", "runoob", time()+3600); ?>

<html> .....

註釋:在發送 cookie 時,cookie 的值會自動進行 URL 編碼,在取回時進行自動解碼。(爲防止 URL 編碼,請使用 setrawcookie() 取而代之。)cookie

實例2,咱們還能夠經過另外一種方式設置 cookie 的過時時間。這也許比使用秒錶示的方式簡單。session

<?php $expire=time()+60*60*24*30; setcookie("user", "runoob", $expire); ?>

<html>
.....

取回Cookie的值

PHP的$_COOKIE變量用於取回cookie的值。函數

在下面的實例中,咱們取回了名爲 "user" 的 cookie 的值,並把它顯示在了頁面上:編碼

<?php // 輸出 cookie 值
echo $_COOKIE["user"]; // 查看全部 cookie
print_r($_COOKIE); ?>

在下面的實例中,咱們使用 isset() 函數來確認是否已設置了 cookie:spa

<html>
<head>
<meta charset="utf-8">
<title>PHP教程(runoob.com)</title>
</head>
<body>

<?php if (isset($_COOKIE["user"])) echo "歡迎 " . $_COOKIE["user"] . "!<br>"; else
    echo "普通訪客!<br>"; ?>

</body>
</html>

刪除 Cookie?

當刪除 cookie 時,您應當使過時日期變動爲過去的時間點。code

<?php // 設置 cookie 過時時間爲過去 1 小時
setcookie("user", "", time()-3600); ?>

PHP Session

PHP session 變量用於存儲關於用戶會話(session)的信息,或者更改用戶會話(session)的設置。Session 變量存儲單一用戶的信息,而且對於應用程序中的全部頁面都是可用的。

Session 的工做機制是:爲每一個訪客建立一個惟一的 id (UID),並基於這個 UID 來存儲變量。UID 存儲在 cookie 中,或者經過 URL 進行傳導

用戶信息存儲到 PHP session 中以前,首先必須啓動會話。

開始PHP Session

session_start() 函數必須位於 <html> 標籤以前:

<?php session_start(); ?>
 
<html>
<body>
 
</body>
</html>

存儲Session變量

存儲和取回 session 變量的正確方法是使用 PHP $_SESSION 變量:

<?php session_start(); // 存儲 session 數據
$_SESSION['views']=1; ?>
 
<html>
<head>
<meta charset="utf-8">
<title>PHP教程(runoob.com)</title>
</head>
<body>
 
<?php // 檢索 session 數據
echo "瀏覽量:". $_SESSION['views']; ?>
 
</body>
</html>

銷燬 Session

若是您但願刪除某些 session 數據,可使用 unset() 或 session_destroy() 函數。

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

實例

<?php session_start(); if(isset($_SESSION['views'])) { unset($_SESSION['views']); } ?>

或者調用session_destroy() 函數完全銷燬 session:

<?php session_destroy(); ?>
相關文章
相關標籤/搜索