欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php后台如何避免用户直接进入方法实例

程序员文章站 2022-06-12 21:41:31
1)创建basecontroller控制器继承controller(后台的一切操作要继承basecontroller): 在basecontroller里面添加: 复制...

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;
    }
}