我已经为此进行了搜索,但没有得到适用于我的情况的任何信息,因此,我正在发布我的问题。我正在使用CodeIgniter MVC框架进行管理员登录,我为所有从“ Admin_Controller”扩展的管理员控制器编写了名为“ Admin_Controller”的基本控制器,并在基本控制器“ Admin_Controller”中写入了登录会话检查
文件夹结构:--controllers
--admin/
-- Banners.php
-- Categories.php
-------
-------
-- Login.php
--models
-- admin
-- Mdl_banners.php
-- Mdl_categories.php
------------
--------------
--views
--admin
-------
-------
登录表格:admin / login / login_View.php
<form action="<?php echo base_url(); ?>admin/login/validate_user" method="post" name="login_form"> <h1>Login</h1> <?php echo "<div class='error_msg'>"; if (isset($error_message)) { echo $error_message; } echo validation_errors(); echo "</div>"; ?> <div> <input type="text" name="user_name" class="form-control" placeholder="UserName" required="" /> </div> <div> <input type="password" name="user_password" class="form-control" placeholder="Password" required="" /> </div> <div> <button class="btn btn-default submit" name="submit_login">Login</button> </div> </form>
我的基本控制器:core / MY_Controller.php
class MY_Controller extends CI_Controller { function __construct() { parent::__construct(); // modules::run('admin/login/isUserLoggedin'); } } class Admin_Controller extends MY_Controller { public function __construct() { parent::__construct(); $this->_title = 'My Site Name'; // check if user is logged in if (! $this->session->userdata('logged_in')) { redirect('admin/login'); } } }
我的登录控制器:Controllers / admin / Login.php
class Login extends Admin_Controller { public function __construct(){ parent::__construct(); $this->load->model('admin/mdl_login'); } public function index(){ if ($this->session->userdata('logged_in')) redirect(base_url('admin/dashboard')); $data['title'] = $this->_title . ' - Admin Login'; $this->load->view('admin/login/login_view'); } public function validate_user(){ $this->form_validation->set_rules('user_name', 'Username', 'trim|required|xss_clean'); $this->form_validation->set_rules('user_password', 'Password', 'trim|required|xss_clean'); if ($this->form_validation->run() == FALSE) { $this->load->view('login_view'); } else { $data = array( 'username' => $this->input->post('user_name'), 'password' => md5($this->input->post('user_password')) ); $result = $this->mdl_login->login($data); if ($result == TRUE) { $user_name = $this->input->post('user_name'); $result = $this->mdl_login->read_user_information($user_name); if ($result != false) { $session_data = array( 'user_id' => $result[0]->id, 'user_name' => $result[0]->username, 'email' => $result[0]->email, ); // Add user data in session $this->session->set_userdata('logged_in', $session_data); redirect('admin/dashboard'); } } else { $data = array( 'error_message' => 'Invalid Username or Password' ); $this->load->view('admin/login/login_view', $data); } } } }
htaccess:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L]
我的疑问是,在'controllers'的'admin'文件夹中有'Login'控制器是否存在任何问题?有人指出我正确的方向吗?谢谢。我的问题是显示为“本地主机重定向了您太多次。”