我正在尝试使用codeigniter创建登录系统,但尝试登录时发现致命错误:(
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
function __construct(){
parent::__construct();
$this->load->model('Auth/login','',TRUE);
}
class Auth extends CI_Controller {
public function index()
{
// $this->load->view('Home');
}
// start login
public function login()
{
$this->load->helper(array('form'));
$this->load->view('Login');
}
// end login
// start logout
public function logout()
{
$this->session->unset_userdata('logged_in');
redirect('Login','refresh');
}
// end logout
// start checkLogin
public function checkLogin()
{
// field validation successfull, validate against database
$username = $this->input->post('username');
$password = $this->input->post('password');
// query database
$this->load->model('Auth');
$result = $this->Auth->login($username, $password);
if ($result) {
$sess_array = array();
foreach ($result as $row) {
$sess_array = array(
$id = $row->id,
$username = $row->username
);
$this->session->set_userdata('logged_in',$sess_array);
}
return TRUE;
}else {
$this->form_validation->set_message('checkLogin', 'Invalid username or password');
return FALSE;
}
}
// end checkLogin
}
<?php
class Auth extends CI_Model
{
// start login
function login($username, $password)
{
$this->db->select('id','username','password');
$this->db->from('user_details');
$this->db->where('username', $username);
$this->db->where('password', $password);
$this->db->limit(1);
$query = $this->db->get();
if ($query->num_rows() == 1) {
return $query->result();
}else{
return false;
}
}
// end login
}
?>
答案 0 :(得分:1)
问题是你有两个同名的Auth
类,一个用于控制器,一个用于模型。一个脚本不能包含两个类,这就是你得到错误的原因。
重命名你的auth模型,就像这个Auth_model.php一样,并像这样声明类
class Auth_model extends CI_Model
希望你可以休息一下如何使用这个模型。