用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2824|回复: 5
收起左侧

[讨论/交流] 写了个MY_Controller,不知道有没有人像我这样用(第一次发贴

[复制链接]
发表于 2012-8-11 17:49:35 | 显示全部楼层 |阅读模式
PHP复制代码
 
 class MY_Controller extends CI_Controller{
 
 function __construct()
 {
  parent::__construct();
  session_start();
  $this->load->helper('url');
  $this->output->enable_profiler(TRUE);
 }
 
 function login()
 {
  if(!$_SESSION['username'])
  {
   if($this->input->post('login'))
   {
    $username = $this->input->post('username');
    $password = $this->input->post('password');
    if ($username && $password)
    {
     $this->load->model('users_model');
     $user_info = $this->users_model->get_user($username, 'Password')->row_array();
     if($user_info)
     {
      if( $user_info['Password'] == md5( $password ) )
      {
       $this->users_model->set_user_session($username);
       return true;
      }
      else
       $data['error'] = '密码错误!';
     }
     else
      $data['error'] = '用户不存在!';
    }
   }
   $this->load_view('login.php', $data);
   $this->output->_display();
   exit;
  }
  return true;
 }
 function load_view($main_file, $data = '')
 {
  $this->load->view('templates/header.php', $data);
  if(is_array($main_file))
  {
   foreach ($main_file as $file)
    $this->load->view($file);
  }
  else
   $this->load->view($main_file);
  $this->load->view('templates/footer.php');
 }
}
 
复制代码


只要想说的是的login()方法!
使用例子,
PHP复制代码
 
 class test() extends MY_Controller()
{
  function test()//如果这个页面需要登陆才可以访问,只需要把$this->login()即可!
 {
  $this->login();
 }
}
 
复制代码

发表于 2012-8-11 21:35:36 | 显示全部楼层
直接在MY_Controller构造函数里调用就可以了,然后其他控制器继承就可以了
发表于 2012-8-11 23:27:20 | 显示全部楼层
你这个MY_Controller 不洁净,在MY_Controller 之前会有 CI自身的session_start(); 写在这里多了,但是我又看到了你后面有用_SESSION,那为什么不写在login函数里呢,莫非你在别的地方还用_SESSION

感谢 分享
发表于 2012-8-12 11:33:31 | 显示全部楼层
对构造函数中最好不要写session_start
发表于 2012-8-12 17:28:02 | 显示全部楼层
建议有空认真理解下常用的几个开发模式
发表于 2012-8-13 00:28:35 CI中国手机版 | 显示全部楼层
Login应该写在model中
来自: iPhone客户端

本版积分规则