2012-11-08 56 views
0

我有困难与codeigniter设置管理部分。codeigniter管理面板文件结构

我刚刚在名为fam_Admin的控制器文件夹中添加了一个新文件夹。

所以结构是像以下:

-controllers
---> fam_admin
----> - 的login.php

在routes.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.&nbsp; 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但是当登录凭证被验证其连锁行业es在谷歌浏览器中出现以下错误。你可以通过输入错误的凭据来尝试它,它会给你错误并加载相同的登录表单。

该网站在检索http://www.famtripsandinspectionvisits.com/index.php/fam_admin/login/validate_login时遇到错误。它可能因维护而关闭或配置不正确。

+0

你有一个名为“main_section”在'fam_admin/main_section.php'控制器?我没有看到代码中的任何内容表明“main_section”应该加载任何东西。你甚至将重定向注释掉了,你确定你给了我们正确的细节吗?还有,你打开错误报告和display_errors? –

+0

我现在编辑了代码。我正在尝试一些内容,因此在发布的代码中出现错误。 – Sahil

+0

你的意思是在php.ini文件中的错误报告? – Sahil

回答

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'); 
    } 

} 
+0

以上试过它没有工作,然后我打开了错误,错误是在我的模型中的MD5功能。上面的代码清理了y代码,并将在未来帮助我。 – Sahil

+0

是的,即使没有这个错误,你会有另一个。对不起,以前不清楚,开发时需要这些设置:'error_reporting(E_ALL); ini_set('display_errors','On');'当你上线时关掉'display_errors',并将错误报告转为适当的级别进行记录。 –