我試圖輸入一個自定義的表單錯誤,它會將ab錯誤返回給用戶說:「您沒有account.click這裏註冊。但是目前如果我輸入不正確的用戶名在我的配置文件數據庫中不存在。我有一個lang文件,加載我已經在我的autoload.php文件中定義的錯誤:$ autoload ['language'] = array('myerrors');是我的觀點的問題?我想我需要使用一個form_error線,但我不是確切位置...定義的錯誤的名稱是validateUser_error爲什麼我的表單錯誤不能從表單驗證中拋出正確的消息?
型號:
function validateUser($username, $password)
{
$this->db->select('*')->from('membership');
$this->db->where('username', $username);
$this->db->where('password', $password);
$query = $this->db->get();
if ($query ->num_rows ==1)
{
$this->form_validation->set_message('validateUser_error');
return true;
}
else{
return false;
}
}
查看:
<?php echo validation_errors(); ?>
<?=form_open('login/loguserin');?>
<p>
username <?=form_input('username');?>
</p>
<p>
password <?=form_password('password');?>
</p>
<p>
<?=form_submit('submit', 'Login'); ?>
<?=form_close(); ?>
</p>
控制器:
功能loguserin()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required|min_length[4]|max_length[12]|callback_validateUser_error|trim');
$this->form_validation->set_rules('password', 'Password', 'required|md5|trim');
$username = $this->input->post('username');
$password = $this->input->post('password');
$valid = $this->membership->validateUser($username, $password);
if ($this->form_validation->run() && $valid == true)
{
$this->session->set_userdata('status', 'OK');
$this->session->set_userdata('username', $username);
redirect('home');
}
else
{
$this->session->set_userdata('status', 'NOT_OK');
$this->load->view('shared/header');
$this->load->view('account/logintitle');
$this->load->view('account/loginview');
$this->load->view('shared/footer');
}
}