这篇文章介绍了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; 
    } 
} 
您可能感兴趣的文章:
相关文章
最新评论
 站长推荐 正版Windows 10 家庭/专业版,操作系统限时抢购[¥1088→¥248] 站长推荐 Microsoft Office 2016/2019/365 正版最低价仅需[ ¥148元]
大家感兴趣的内容
最近更新的内容
常用在线小工具
