php之base.php 代码解释

<?php
if (!defined(‘BASEPATH‘)) exit(‘No direct script access allowed‘);

/**
 * 处理输出
 */
class ApiOut
{
    /**
     * 返回状态,基本参考 HTTP Status Code
     * @var integer
     */
    public $status = 200;
    //定义返回值的状态
    /**
     * 返回的数据
     * @var array
     */
    public $data = null;
    //定义返回的数据
    /**
     * 输出JSON格式的结果,并中止程序的运行
     * @return void
     */
    public function json()
    {   //用json格式返回,定义头文件
        header(‘Content-type: application/json‘);
        echo json_encode($this, JSON_UNESCAPED_UNICODE);// 直接不转码,输出中文
        die(); //die()函数输出一条消息,并退出当前的脚本,类似exit()函数的别名
    }
}


class Base extends CI_Controller {

    var $layout = "";
    var $_output = array();

    function __construct() { //构造函数可以接受参数,能够在对象车创建的时候赋值给对象的属性
        parent::__construct(); // php的构造函数
        $this->_output[‘is_login‘] = FALSE;//默认登陆为false
         $this->_output[‘tpl_body‘] = "";
         $this->_output[‘current_admin‘] = array();

        $this->_output[‘__site‘] = array(
            ‘title‘=>$this->config->item(‘site_title‘),//读取config文件,设置站名
            ‘name‘=>$this->config->item(‘site_title‘), 
            ‘logo_path‘=>$this->config->item(‘logo_path‘));//设置logo的路径

        $this->load->database();//连接数据库

    }

    /**
     * 设置页面主体内容
     * @param string $viewname 模版名称
     * @param array  $data     填充模版的数据
     */
    public function set_body($viewname, $data=array())
    {
        $data[‘__site‘] = &$this->_output[‘__site‘];
        $body = $this->load->view($viewname, $data, TRUE);// 加载页面的主体
        $this->_output[‘tpl_body‘] = $body;
    }

    /**
     * 输出html
     * @param  string $base_template layout的名称
     */
    public function html($base_template="m/base")
    {
        $this->load->view($base_template, $this->_output); //输出页面的页头,和页尾
    }

    /**
     * 用于设置html的title
     * @param string  $content  标题内容
     * @param boolean $override 是否重写标题,如果不重写,则会自动带上站点默认的标题
     */
    public function set_html_title($content, $override=FALSE)
    {
        # code...
        if ($override) {       //加载网站的标题,标题内容 ,里面有一个参数,是否重写标题,如果是的话就重写,如果不是的话,就带上站点的默认标题
            $this->_output[‘__site‘][‘title‘] = $content;
        }else{
            $this->_output[‘__site‘][‘title‘] = $content.‘ - ‘.$this->_output[‘__site‘][‘title‘];
        }
    }

    /**
     * 包装url用于微信中验证用户信息
     * @param  string $url 要包装的url
     * @return string      包装后的url
     */
    public function link_wrapper($url) //包装url中用于微信来验证用户信息
    {
        return "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->config->item(‘WECHAT_CORP_ID‘)."&redirect_uri=".urlencode($url)."&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
    }
}


class AdminBase extends Base {


    function __construct() {  //adminbase 的构造函数,继承自父类 base
        parent::__construct();

        $this->_output[‘__site‘][‘menu‘] = $this->config->item(‘menu‘); //输出菜单
        $this->load->model(‘Admin_model‘);//加载管理员数据模型
    }
   
    public function check_login()//检查是否登陆
    {
        if (!$this->Admin_model->is_login()) {
            //TODO 记录用户最后访问的地址
            // $this->last_url($this->uri->uri_string());
            redirect(‘/m/admin/login‘);  //假如没有登陆的话,跳转到登陆的页面
        }else{
            $this->_output[‘is_login‘] = True; //假如登陆的话,输出is_login 为true

            $admin = array(‘nickname‘=>$this->Admin_model->userdata(‘nickname‘),
                           ‘id‘=>$this->Admin_model->userdata(‘id‘),
                           ‘user‘=>$this->Admin_model->userdata(‘user‘)); //读取登陆用户的所有信息,并且组合从数组来封装 
            $this->_output[‘current_admin‘] = $admin; //输出当前的用户的信息
        }
    }
    
     
    //用来检查用户的访问权限
    
    public function check_qx($name){
        //$name代表要查询的字段名字  
        $this->load->model(‘User_model‘);
        $this->load->model(‘Admin_model‘);
        $uid = $this->Admin_model->userdata(‘id‘); 
        $useridinfo=$this->db->query("SELECT `userid` FROM `admin_user` WHERE `id` = $uid")->result_array();
       
        //这是得到的userid:
        $userid=$useridinfo[0][‘userid‘];
         
        // $qxuserinfo=  $this->db->query("SELECT * FROM `qx` WHERE `userid` LIKE ‘$uid‘")->result_array();
        
        $result = $this->db->query("SELECT * FROM `qx` WHERE `userid` LIKE ‘$userid‘")->result_array(); 
        //这是根据对应字段得到的返回值 
           
        $url= $_SERVER[‘HTTP_REFERER‘];
        //var_dump($url);
        //var_dump($url);
        
        /*if($result[0][$name]==0){
             //等于0 说明没有权力访问
             //TODO 记录用户最后访问的地址,自动返回上一级目录 
              //$referer = $_SERVER[‘HTTP_REFERER‘];
              //redirect($referer);
             //echo "<script>alert(‘没有访问权限,请联系你的管理员‘);document.location.href=‘$referer‘</script>";
        }else{
            //
        };*/
        
        /*
        if($userdata[‘systemnyc‘]==0){
            $referer = $_SERVER[‘HTTP_REFERER‘];
            redirect($referer);
        } */
        
      
    }
    

}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。