PHP session變量的作用是:存儲用戶的session信息,或者改變用戶的session設置。Session變量儲存了一個單一用戶的信息,它可以被所有的頁面使用。
PHP Session變量
當你在自己的計算機上運行一個應用程序時,你打開它,對他做一些改變,然後關閉它,這個過程和session很相似。計算機知道你是誰,知道你什麼時候啟動了應用程序,什麼時候關閉了應用程序。但在互聯網上,會出現這樣一個問題:因為HTTP地址不可能永久的保留下來,所以服務器很難辨認你是誰,你在干什麼。
PHP Session允許你在服務器上儲存用戶信息(如:用戶名[username]、購物清單[shopping]等等),從而解決了這個問題。然而,session信息也是臨時存在的,當你離開這個網站時,他會被自動刪除。如果你想永久保留這些信息,你可以嘗試著把它儲存在數據庫中。
Session通過為每個訪問者創建一個獨立的ID(UID)並儲存基於UID的變量來運行。UID既存儲在cookie中,又在URL中展現出來。
啟動PHP Session
在你將用戶信息存入PHP Session之前,你必須先啟動Session。
注意:session_start()函數必須寫在<html>標簽之前:
<?php session_start(); ?>
<html>
<body></body>
</html>
上述代碼將在服務器上注冊一個用戶的session,允許你儲存用戶信息,並為用戶session指定一個UID。
儲存一個Session變量
儲存和獲取session變量的最佳方法是使用PHP $_SESSION變量:
<?php
session_start();
// store session data
$_SESSION['views']=1;
?><html>
<body><?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?></body>
</html>
結果:
Pageviews=1
在上述案例中,我們建立了一個簡易的頁面計數器。Isset()函數檢查“views”變量是否已經被設置。如果“views”變量已經被設置了,我們會增加我們的計數。如果“views”變量不存在,我們會先創建一個“views”變量,並把“1”賦給它。
<?php
session_start();
if(isset($_SESSION['views']))
$_SESSION['views']=$_SESSION['views']+1;
else
$_SESSION['views']=1;echo "Views=". $_SESSION['views'];
?>
刪除Session
如果你希望刪除一些session數據,你可以使用unset()函數或session_destroy()函數。
Unset()函數的作用是釋放指定的session變量:
<?phpunset($_SESSION['views']);
?>
你也可以使用session_destroy()函數將session全部刪除:
<?php
session_destroy();
?>
注意:session_destroy()會重新設置你的session,你會丟失所有已保存的session數據。