[本地主机在Codeigniter中重定向了您太多次

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[本地主机在Codeigniter中重定向了您太多次相关的知识,希望对你有一定的参考价值。

我已经为此进行了搜索,但没有得到适用于我的情况的任何信息,因此,我正在发布我的问题。我正在使用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'控制器是否存在任何问题?有人指出我正确的方向吗?谢谢。
答案
redirect('admin / login')将查找名为Admin的控制器和方法登录。您可以更改为foo / bar,其中foo是所需的控制器,而bar是方法。

具有此功能

public function bar() echo "I am about to show the login form here";

您可以阅读有关重新映射here的信息,或使用route

无论哪种方式,您都应该能够执行该功能来中断重定向循环。

以上是关于[本地主机在Codeigniter中重定向了您太多次的主要内容,如果未能解决你的问题,请参考以下文章

在 Codeigniter 中重定向后会话丢失

在 CodeIgniter 中重定向整个站点不起作用

在 CodeIgniter 3 中重定向后 Flashdata 未清除

在codeigniter的htaccess中重定向url

如何在 Codeigniter 中重定向和删除 index.php [重复]

在CodeIgniter中重定向整个站点不起作用