在用ThinkPHP寫後臺管理模塊的用戶登陸權限的控制時,如何防止其他用戶直接訪問後臺首頁,需要對管理員是否登陸要進行驗證。因爲後臺的頁面不止一個頁面,所以,如果針對每一個頁面都做權限管理的話會很麻煩。
在TP裏,可以通過實現一個公共的控制器,讓後臺的控制器直接繼承這個公共控制器即可,在訪問後臺首頁時,會先訪問這個公共的控制器,只要在這個公共的控制器中,做好管理員驗證的事情即可。
公共的控制器類放在Application\\Common\\Controller目錄下,命名爲CommonController.class.php,命名空間如下:
代碼如下:
<?php namespace Common\Controller; use Think\Controller; class CommonController extends Controller { public function _initialize(){ //判斷session裏是否有值 if(!session('?username')){ redirect('/admin.php/login/login',2,'請先登陸'); } } }
子類繼承時:這裏用的時Admin模塊
<?php namespace Admin\Controller; use Common\Controller\CommonController; class IndexController extends CommonController { //後臺首頁模板顯示 public function index(){ $this->display(); } }
清空session:
public function logout(){ //清除session $_SESSION = array(); session(null); session('[destroy]'); redirect('/admin.php/login/login',2,'退出成功,返回首頁'); exit; }