Session的使用時機與生命週期
一般我們在製作會員登入、後台權限管理、購物、驗證碼…等,都很常會使用到session,通常session大約只會存活20分鐘左右,旦可以在php.ini裡設定修改存活時間。
Session的機制是記錄在server端,也就是會在server上產生session檔案,安全性也較高,相對的也會造成主機的負擔,server所產生的session檔案,php是有一定的機制去回收,旦也能從php.ini裡去修改回收的概率。
筆者建議可以設定排程去定期清理過久的session檔案,因為太多的session檔案會造成主機的負荷,長久下來會導至主機效能低落等擾人的問題。
啟用 Session
在要用到session的php頁面上,使用 session_start() 函式,此函式一定要放在網頁的「最上方」且還沒有輸出任何東西之前才行。
<?php
session_start();
//在此函式下面才能使用session
?>
<html>
<body>
.....
</body>
</html>
存取session變數的使用方式
session的設定方式非常的簡單,需要指定session變數的名稱,再給予值即可。
session_start();
//在session_start();底下才能使用$_SESSION
//設定session並給予值
$_SESSION['my_name']='tester';
//將剛剛設定的session印出來
echo '我的名字:'.$_SESSION['my_name'];
$_SESSION['my_age']='25';
echo '我的年齡:'.$_SESSION['my_age'];
echo '出生年份:'.(2018-(int)$_SESSION['my_age']);
清除session
session具備存活時間,即使不去清除,它也會自動消失,旦若要指定清除,可使用unset或session_destroy函式來將session清除掉。
session_start();
//在session_start();底下才能使用$_SESSION
unset($_SESSION['my_name']); //將「指定」的session清除
session_destroy(); //清除使用中的session
補充說明/ NOTE
使用session就是這麼方便,即使在不同php的頁面也能調用出變數,旦需適時的使用,以免造成濫用導至主機或程式不穩定。