我目前正在尝试将我的应用程序从MySQL数据库更改为MongoDB数据库。我的项目需要比较其中的两个,我的MySQL代码正在工作,现在它给了我这个错误。
堆栈追踪:
遇到PHP错误严重性:通知消息:未定义属性:
Users::$form_validation
文件名:controllers/users.php
行号:26
错误行:
$this->form_validation->set_rules('username','Username','trim|required|min_length[4]|xss_clean');
代码:
<?php
class Users extends CI_Controller{
public function register(){
$this->form_validation->set_rules('first_name','First Name','trim|required|max_length[50]|min_length[2]|xss_clean');
$this->form_validation->set_rules('last_name','Last Name','trim|required|max_length[50]|min_length[2]|xss_clean');
$this->form_validation->set_rules('email','Email','trim|required|max_length[100]|min_length[5]|xss_clean|valid_email');
$this->form_validation->set_rules('username','Username','trim|required|max_length20]|min_length[6]|xss_clean');
$this->form_validation->set_rules('password','Password','trim|required|max_length[20]|min_length[6]|xss_clean');
$this->form_validation->set_rules('password2','Confirm Password','trim|required|max_length[50]|min_length[2]|xss_clean|matches[password]');
if($this->form_validation->run() == FALSE){
$data['main_content']='users/register';
$this->load->view('layouts/main',$data);
}else{
if($this->User_model->create_member()){
$this->session->set_flashdata('registered','Registered successfully');
redirect('home/index');
}
}
}
public function login(){
//$this->load->model('user_model');
$this->form_validation->set_rules('username','Username','trim|required|min_length[4]|xss_clean');
$this->form_validation->set_rules('password','Password','trim|required|min_length[4]|max_length[50]|xss_clean');
$collection = $this->database->users;
if($this->form_validation->run() == FALSE){
$this->session->set_flashdata('login_failed', 'Sorry, this username doesn't exist.');
redirect('home/index');
} else {
$username=$_POST['login'];
$password=$_POST['password'];
$user_id = $collection->findOne(array('username' => $username, 'password' => md5($password)));
// $username = $this->input->post('username');
// $password = $this->input->post('password');
$user_id = $this->User_model->login_user($username,$password);
if($user_id){
$user_data = array(
'user_id' => $user_id,
'username' => $username,
'logged_in' => true
);
$this->session->set_userdata($user_data);
redirect('home/index');
} else {
$this->session->set_flashdata('login_failed', 'Sorry, this username doesn't exist.');
redirect('home/index');
}
}
}
public function logout(){
$this->session->unset_userdata('logged_in');
$this->session->unset_userdata('user_id');
$this->session->unset_userdata('username');
$this->session->sess_destroy();
redirect('home/index');
}
}
答案 0 :(得分:6)
更改config / autoload.php对我有用,只需在autoload中添加form_validation:
$autoload['libraries'] = array('form_validation');
答案 1 :(得分:2)
这是因为 无法加载相关库
方法01
public function __construct()
{
parent::__construct();
$this->load->library('form_validation');
$this->load->helper('form');
}
方法02
config/autoload.php
中的
$autoload['libraries'] = array('form_validation');
$autoload['helper'] = array('url', 'form');
答案 2 :(得分:0)
遵循此方法 -
public function __construct()
{
parent::__construct();
$this->load->library('form_validation');
$this->load->helper('form');
}