Codeigniter form_validation库错误

时间:2013-02-19 10:49:37

标签: php login controller codeigniter-2

我是Codeigniter的新手并尝试从教程codeigniter login构建登录页面。现在,当我在输入用户名和密码后尝试登录时,我收到以下错误。

  

遇到PHP错误

     

严重性:注意

     

消息:未定义属性:Verifylogin :: $ form_validation

     

文件名:controllers / verifylogin.php

     

行号:18

编辑:

我的verifylogin.php文件是

    <?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
class Verifylogin extends CI_Controller
{
    function __construct() {
        parent::__construct();
    }

    function index()
    {
        $this->load->helper(array('form', 'url'));
        $this->load->model('user');
        $this->load->library('form_validation');

        //$this->load->library('form_validation', 'form_validation', true/false);

        $this->form_validation->set_rules('username','Username','trim|required|xss_clean');
        $this->form_validation->set_rules('password','Password','trim|required|xss_clean|callback_check_database');

        if($this->form_validation->run() == FALSE)
        {
            redirect('login','refresh');
        }
        else
        {
            redirect('home','refresh');
        }
    }

    function check_database($password)
    {
        $username = $this->input->post('username');
        $this->load->model('user');
        $result = $this->user->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('check_database','Invalid username or password');
        }
    }
}
?>

form_validation.php文件的位置。

3 个答案:

答案 0 :(得分:0)

请将所有这些代码从index()函数移到构造函数

$this->load->helper(array('form', 'url'));
$this->load->model('user');
$this->load->library('form_validation');

因为您在check_database()函数中也使用了form_validation库。

现在应该可以了。 :)

答案 1 :(得分:0)

你可以把你的login.php和home.php放在你的问题中吗?

我认为你应该使用这个

$this->load->view('login');

尽管如此

redirect('login','refresh');

答案 2 :(得分:-1)

在使用表单验证之前,您必须调用辅助函数表单

$this->load->helper(array('form', 'url'));

在调用表单验证库之前使用它