合合 发表于 2012-8-11 17:49:35

写了个MY_Controller,不知道有没有人像我这样用(第一次发贴


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()方法!
使用例子,

class test() extends MY_Controller()
{
function test()//如果这个页面需要登陆才可以访问,只需要把$this->login()即可!
{
$this->login();
}
}

gs129090 发表于 2012-8-11 21:35:36

直接在MY_Controller构造函数里调用就可以了,然后其他控制器继承就可以了

sdink 发表于 2012-8-11 23:27:20

你这个MY_Controller 不洁净,在MY_Controller 之前会有 CI自身的session_start(); 写在这里多了,但是我又看到了你后面有用_SESSION,那为什么不写在login函数里呢,莫非你在别的地方还用_SESSION

感谢 分享

yunnysunny 发表于 2012-8-12 11:33:31

对构造函数中最好不要写session_start

太尉天上飞 发表于 2012-8-12 17:28:02

建议有空认真理解下常用的几个开发模式

ciogao 发表于 2012-8-13 00:28:35

Login应该写在model中
页: [1]
查看完整版本: 写了个MY_Controller,不知道有没有人像我这样用(第一次发贴