我正在学习通过codeigniter进行简单登录,然后当我按下我的视图上的“登录”按钮而没有输入用户名和密码字段时,出现类似 Missing argument 1 for C_login::login()
的错误。Codeigniter缺少参数1
这些都是我的控制器,我的IDE(netbeanPHP + CI框架)表示没有错误
<?php
class C_login extends CI_Controller{
public function __construct() {
parent::__construct();
$this->load->model('m_login');
}
function index()
{
$this->form_validation->set_rules('username','trim|Username','required|exact_length[4]|xss_clean');
$this->form_validation->set_rules('password','trim|Password','required|min_length[4]|max_length[40]|xss_clean|callback_login');
if($this->form_validation->run() == false)
{
$this->load->view('login');
}
else
{
echo 'sukses validasi';
}
}
function login($password)
{
$username = $this->input->post('username');
$password = $this->input->post('password');
$jabatan = $this->input->post('jabatan');
$value = $this->m_login->cekpass($username,$password,$jabatan);
if($value)
{
return true;
}
else
{
return false;
}
}
}
?>
这里是模型,我认为我的模型没有显示任何错误
<?php
class M_login extends CI_Model{
public function __construct() {
parent::__construct();
}
function login ($username, $password, $jabatan)
{
$this->db->where('username',$username);
$this->db->where('password',$password);
$this->db->where('jabatan',$jabatan);
$value = $this->db->get('ms_user');
if($value->num_rows()>0)
{
return true;
}
else
{
return false;
}
}
}?>
从登录函数中除去'$ password'参数,或给它一个默认值。 '函数登录($ password = null)' –
@VladBalmos它显示了另一个错误'调用未定义的方法M_Login :: cekpass()in controller/c_login line 35 – Cignitor
您在模型中将函数'login'命名为'cekpass'。 –