Latest web development tutorials

PHP Session

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


PHP Session 變量

您在計算機上操作某個應用程序時,您打開它,做些更改,然後關閉它。 這很像一次對話(Session)。 計算機知道您是誰。 它清楚您在何時打開和關閉應用程序。 然而,在因特網上問題出現了:由於HTTP 地址無法保持狀態,Web 服務器並不知道您是誰以及您做了什麼。

PHP session 解決了這個問題,它通過在服務器上存儲用戶信息以便隨後使用(比如用戶名稱、購買商品等)。 然而,會話信息是臨時的,在用戶離開網站後將被刪除。 如果您需要永久存儲信息,可以把數據存儲在數據庫中。

Session 的工作機制是:為每個訪客創建一個唯一的id (UID),並基於這個UID 來存儲變量。 UID 存儲在cookie 中,或者通過URL 進行傳導。


開始PHP Session

在您把用戶信息存儲到PHP session 中之前,首先必須啟動會話。

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

<?php session_start(); ?>

<html>
<body>

</body>
</html>

上面的代碼會向服務器註冊用戶的會話,以便您可以開始保存用戶信息,同時會為用戶會話分配一個UID。


存儲Session 變量

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

<?php
session_start();
// 存储 session 数据
$_SESSION['views']=1;
?>

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

<?php
// 检索 session 数据
echo "浏览量:". $_SESSION['views'];
?>

</body>
</html>

輸出:

浏览量:1

在下面的實例中,我們創建了一個簡單的page-view 計數器。 isset() 函數檢測是否已設置"views" 變量。 如果已設置"views" 變量,我們累加計數器。 如果"views" 不存在,則創建"views" 變量,並把它設置為1:

<?php
session_start();

if(isset($_SESSION['views']))
{
	$_SESSION['views']=$_SESSION['views']+1;
}
else
{
	$_SESSION['views']=1;
}
echo "浏览量:". $_SESSION['views'];
?>


銷毀Session

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

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

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

您也可以通過調用session_destroy() 函數徹底銷毀session:

<?php
session_destroy();
?>

註釋: session_destroy()將重置session,您將失去所有已存儲的session數據。