1

私はCodeigniterの初心者で、チュートリアルのcodeigniterログインからログインページを作成しようとしています。ユーザー名とパスワードを入力してログインしようとすると、次のエラーが発生します。

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ファイルが配置されている場所。

4

3 に答える 3

1

質問に login.php と home.php を入れてもらえますか?

私はあなたがこれを使うべきだと思う

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

これにもかかわらず

redirect('login','refresh');
于 2014-02-27T07:33:01.610 に答える
1

このすべてのコードを index() 関数からコンストラクターに移動してください。

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

check_database() 関数でも form_validation ライブラリを使用しているためです。

今すぐ動作するはずです。:)

于 2013-02-19T11:14:42.223 に答える
0

フォーム検証を使用する前に、ヘルパー関数フォームを呼び出す必要があります

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

フォーム検証のライブラリを呼び出す前にこれを使用してください

于 2013-02-19T11:01:11.163 に答える