Ошибка цикла перенаправления в CodeIgniter
Я работал над этим в течение дня. У меня такая же проблема, но я не понимаю.
<?php
class Users extends CI_Controller
{
function index()
{
redirect('Users/login');
}
function login()
{
$data['title'] = 'Selamat datang di Sistem Informasi Koperasi';
$data['main_content'] = 'login';
$this->load->view('Users/template', $data);
}
function logout()
{
$this->session->sess_destroy();
$this->session->set_flashdata('info_login', 'Anda sudah keluar dari sistem');
redirect('Users/login');
}
function validate()
{
//Load User Model
$this->load->model('Users_Model');
//Validate User
$query = $this->Users_Model->validate();
if($query != '') {
//Mengambil Roles dari Groups
$roles = $this->Users_Model->roles($query->group_id);
//$this->login_model->last_login($query);
$data = array(
'username' => $query->username,
'roles' => $roles,
'is_logged_in' => true
);
$this->session->set_userdata($data);
if($roles == 'administrators') {
redirect('Administrators/index');
} elseif($roles == 'managers') {
redirect('Managers/index');
}
else {
$this->session->set_flashdata('info_login', 'Mohon maaf anda belum terdaftar sebagai Group! Silahkan hubungi admin!');
redirect('Users/login');
}
} else {
$this->session->set_flashdata('info_login', 'Maaf,username dan password yang anda masukkan salah,silahkan coba kembali!');
redirect('Users/login');
}
}
}
В Chrome и Firefox я получаю это сообщение. Что я должен делать?
Эта веб-страница имеет цикл перенаправления.
http://localhost/simpks/index.php/Users/login
привело к слишком много перенаправлений. Очистка файлов cookie для этого сайта или разрешение сторонних файлов cookie может решить проблему. Если нет, возможно, это проблема конфигурации сервера, а не проблема с вашим компьютером. Вот несколько советов: Перезагрузите эту страницу позже. Узнайте больше об этой проблеме. Ошибка 310 (net::ERR_TOO_MANY_REDIRECTS): было слишком много перенаправлений.
это мой вид template.php
<?php
$this->load->view('includes/header',$main_content);
$this->load->view('Users/'.$main_content);
$this->load->view('includes/footer');
?>
это моя модель Users_Model.php
<?php
class Users_Model extends CI_Model{
function validate(){
$this->db->where('username',$this->input->post('username'));
$this->db->where('password',md5($this->input->post('password')));
$query = $this->db->get('Users');
if($query->num_rows == 1){
$row = $query->row();
return $row;
}
}
function roles($id){
$this->db->where('id',$id);
$query = $this->db->get('Groups');
if($query->num_rows == 1){
$row = $query->row();
return $row->name;
}
}
}
?>
3 ответа
Тебе не нужно ставить redirect('Users/login');
для проверки сеанса в вашем классе просмотра. Просто сотри это.
Если вам нужно перенаправить, поместите его на другую страницу, такую как users / test. Если сеанс истек в users / test, метод перенаправления вызова в users / test controller. Для лучшей структуры, я думаю, вы должны минимизировать функцию php.
Используйте include вместо loader, если вы называете это в поле зрения. пример: include 'includes/footer';
Я также сталкиваюсь с этой проблемой, но оба контроллера страницы у меня есть метод перенаправления, поэтому я добавляю refresh
в методе перенаправления попробуйте.
читайте внизу страницы перенаправление CI с обновлением
<?php
class Users extends CI_Controller
{
function index()
{
redirect('another_controller/login');
}
}
Create another controller - another_controller.php
class another_controller extends CI_Controller
{
function login()
{
$this->load->view('home');
}
}