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

所属分类: 网络编程 / PHP编程 阅读数: 1596
收藏 0 赞 0 分享

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

更多精彩内容其他人还在看

PHP Ajax实现页面无刷新发表评论

PHP Ajax实现页面无刷新发表评论
收藏 0 赞 0 分享

windows下PHP APACHE MYSQ完整配置

windows下PHP APACHE MYSQ完整配置
收藏 0 赞 0 分享

Ajax PHP分页演示

Ajax PHP分页演示
收藏 0 赞 0 分享

Smarty结合Ajax实现无刷新留言本实例

Smarty结合Ajax实现无刷新留言本实例
收藏 0 赞 0 分享

PHP 和 MySQL 开发的 8 个技巧

PHP 和 MySQL 开发的 8 个技巧
收藏 0 赞 0 分享

一个用php实现的获取URL信息的类

一个用php实现的获取URL信息的类
收藏 0 赞 0 分享

一个PHP操作Access类(PHP+ODBC+Access)

一个PHP操作Access类(PHP+ODBC+Access)
收藏 0 赞 0 分享

php你的验证码安全码?

php你的验证码安全码?
收藏 0 赞 0 分享

PHP无限分类的类

这段时间在写一个部门权限系统,需要用到无限分类技术,找了很多关于分类的代码.逐个收藏起来
收藏 0 赞 0 分享

phpwind中的数据库操作类

phpwind中的数据库操作类
收藏 0 赞 0 分享
查看更多