写了个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();
}
}
直接在MY_Controller构造函数里调用就可以了,然后其他控制器继承就可以了 你这个MY_Controller 不洁净,在MY_Controller 之前会有 CI自身的session_start(); 写在这里多了,但是我又看到了你后面有用_SESSION,那为什么不写在login函数里呢,莫非你在别的地方还用_SESSION
感谢 分享 对构造函数中最好不要写session_start 建议有空认真理解下常用的几个开发模式 Login应该写在model中
页:
[1]