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