我在设置带有codeigniter的管理部分时遇到了困难。
我刚在控制器文件夹中添加了一个名为fam_Admin的新文件夹。
所以结构如下:
- 控制器
---> fam_admin
----> -login.php
我添加了以下代码:
$route['fam_admin'] = "fam_admin/login";
<?php
class Login extends CI_Controller {
public function index() {
//$login['main_content'] = '/fam_admin/login';
//$this -> load -> view('fam_admin/includes/template', $login);
$this -> load -> view('fam_admin/login');
}
public function validate_login() {
$username = $this -> input -> post('username');
$password = $this -> input -> post('password');
$this -> load -> library('form_validation');
$this -> form_validation -> set_rules('username', 'username', 'trim|required');
$this -> form_validation -> set_rules('password', 'password', 'trim|required|callback_credential_check');
if ($this -> form_validation -> run() == FALSE) {
$this -> load -> view('fam_admin/login');
}
}
public function credential_check() {
//Field validation succeeded. Validate against database
$username = $this -> input -> post('username');
$password = $this -> input -> post('password');
$this -> load -> model('fam_admin/admin');
//query the database
$query = $this -> admin -> check_login($username, $password);
if (!$query) {
$this -> form_validation -> set_message('login_check', 'Invalid username or password');
return false;
$this -> index();
} else {
$data = array(
'username' => $this -> input -> post('username'),
'is_logged_in' => true
);
$this -> session -> set_userdata($data);
//redirect('fam_admin/main_section');
redirect('site/logged_in');
}
}
}
?>
以上是login.php的代码,但是当验证登录凭据时,它会在google chrome中出现以下错误。您可以通过输入虚假凭据来尝试它,它应该给您错误并加载相同的登录表单。
网站在检索http://www.famtripsandinspectionvisits.com/index.php/fam_admin/login/validate_login时遇到错误。它可能已关闭以进行维护或配置不正确。
答案 0 :(得分:1)
首先,这是一个问题:
if ( ! $query) {
// ...
return false;
$this -> index();
}
一旦你return
之后的某些事情 - 其余的代码就不会运行 - 所以index
方法不会被调用而且没有完全输出。
...但是,您不应该在一个应该只处理数据验证的函数中加载视图。
我会重新安排一些事情,尝试将控制器简化为:
class Login extends CI_Controller {
public function index()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'username', 'trim|required');
$this->form_validation->set_rules('password', 'password', 'trim|required');
if ($this->form_validation->run())
{
$this->load->model('fam_admin/admin');
$username = $this->input->post('username');
$password = $this->input->post('password');
$query = $this->admin->check_login($username, $password);
if ($query)
{
$data = array(
'username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('site/logged_in');
}
else
{
$this->form_validation->set_message('login_check', 'Invalid username or password');
}
}
$this->load->view('fam_admin/login');
}
}