我是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
文件的位置。
答案 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'));
在调用表单验证库之前使用它