[CI]登录验证

阅读更多

[list]

  • 预先加载数据库操作类和Session类 即在autoload.php中,$autoload['libraries'] = array('database', 'session');
a. 注: 使用session , 要设定 encryption key : config.php中:  $config['encryption_key'] = '!@#$%^&*()';
  • 登录表单页(view) : login_view.php
注: 由于该页面使用了CI的form标签, 所以需要在渲染该页面前加载form_helper, 即: 在config/autoload.php, 文件中加入: $autoload['helper'] = array('url', 'form');
	
	
		
			
			Login
			
		
		
			

Please Login

  • 控制器 : admin.php
	session->userdata('username')) redirect('admin');
			 * }
			 */
			if ($this->session->userdata('username')) {
	         	redirect('welcome');
	      	}
			
			$this->load->library('form_validation'); // 使用CI的表单验证, 如下:
			$this->form_validation->set_rules('email', 'Email', 'valid_email|required');
			$this->form_validation->set_rules('password', 'Password', 'min_length[4]|required');
			
			if($this->form_validation->run() !== false){
				// then validate password. Get from the Db.
				$this->load->model('admin_model');
				$res = $this->admin_model->verify_users(
												$this->input->post('email'),
												$this->input->post('password')
											);
				if($res !== false){
											print_r($res);
					$this->session->set_userdata('username', $this->input->post('email'));
					redirect('welcome'); 
				}
			}
			
			$this->load->view('login_view');
		}
		
		public function logout(){
			$this->session->sess_destroy();
			$this->load->view('login_view');
		}

}
  • 模型层admin_model.php
注: 由于使用了数据库, 在这里必须首先加载数据库连接: 即: 在config/autoload.php, 文件中加入: $autoload['libraries'] = array('database');
	db
				->where('email', $email)
				->where('password', sha1($password))
				->limit(1)->get('users');
				
			if($q->num_rows > 0){
				return $q->row();
			}
			return false;
		}
	}


[/list]

你可能感兴趣的:(codeigniter,CI)