程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php後台如何避免用戶直接進入方法實例

php後台如何避免用戶直接進入方法實例

編輯:PHP綜合

1)創建BaseController控制器繼承Controller(後台的一切操作要繼承BaseController):

在BaseController裡面添加:

復制代碼 代碼如下:
public function checkLogin() {

        if (Yii::app()->authority->isLogin() == Yii::app()->authority->getStatus('NOTLOGIN')) {
            $url = $this->createUrl('user/login');
            if (Yii::app()->request->isPostRequest && Yii::app()->request->isAjaxRequest) {
                echo json_encode(array('code' => -101, 'message' => '用戶未登錄。', 'callback' => 'window.location="' . $url . '";'));
            } else if (Yii::app()->request->isAjaxRequest) {
                echo '<script language="javascript">window.location="' . $url . '";</script>';
            } else {
                $this->redirect($url);
            }
            exit;
        }
        return true;
    }

在components目錄下創建Authority.php文件:

復制代碼 代碼如下:
<?php

/**
 * 權限檢查組件
 */
class Authority extends CComponent {
    private $NOTLOGIN = -1;
    private $FAILED = -2;
    private $PASS = 1;

    public function init() {

    }

    /**
     * 檢查是否登陸
     * @return boolean 
     */
    function isLogin() {
        return isset(Yii::app()->session['user']) ? $this->PASS : $this->NOTLOGIN;
    }

  
    /**
     * 獲取狀態值
     * @param string $name
     * @return int 
     */
    public function getStatus($name){
        return $this->$name;
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved