由於用慣了ThinkPHP之前的版本,一想到要用Session就直接用$_SESSION來訪問,今天看了ThinkPHP5的手冊,才發現原來這麼用時不安全滴。 ThinKPHP5對Session進行了封裝,用的時候至少看起來安全多了。
Session的設定
如果想要操作Session,再Think PHP5中需要使用ThinkSession這個類別
程式碼範例如下:
namespace app\index\controller; use think\Controller; use think\Session; class Index extends Controller{ public function index() { return $this->fetch(); } public function save($name='') { Session::set('user_name',$name); $this->success('Session设置成功'); } }
Session的讀取
讀取Session最安全的方法是使用ThinkRequet類別的session方法
範例程式碼如下:
namespace app\index\controller; use think\Request; class User { public function index(Request $request) { echo $request->session('user_name'); // 读取二维数组 echo $request->session('user.name'); } }
使用這種方式不僅安全而且可以讀取任意維度的Session變數。
當然也可以使用Session類別來讀取Session,不過這種方式最多只支援二維Session變數的讀取
範例程式碼:
namespace app\index\controller; use think\Session; class User{ public function index() { echo Session::get('user_name'); echo Session::get('user.name'); } }
雖然有些麻煩,沒有直接使用全域陣列$_SESSION存入session變數方便,但為了安全,值得一試。
本文首發頂求網,轉載請註明出處。