Php 已登录用户会话的Codeigniter重定向循环

Php 已登录用户会话的Codeigniter重定向循环,php,.htaccess,codeigniter,Php,.htaccess,Codeigniter,我的控制器 class Backspaze extends CI_Controller { function __construct() { parent::__construct(); session_start(); $this->load->library('session'); $this->load->model('getDB'); $this->IsLogge

我的控制器

class Backspaze extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        session_start();
        $this->load->library('session');
        $this->load->model('getDB');
        $this->IsLogged();
}

function IsLogged()
    {
        if (!$this->session->userdata('id'))
            {
                 header('Location: '.base_url().'login');
         }

    }


function Login()
{


    $this->load->view('Auth/Login');
}

}
.htaccess

  RewriteBase /backspaze
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
我几乎尝试了所有的事情,在互联网上的网页得到重定向循环,而检查用户登录,请给我一些解决方案

我的配置
$config['uri_protocol']='AUTO'

请检查以下几点

  • 在您的情况下,不应在
    constructor
    级别,也就是说,您的控制器由公共和经过身份验证的两部分组成 页。因此,它将在这个内部循环/重定向 仅限控制器

  • 将会话检查条件移动到特定页面并重定向 如果假定没有经过身份验证的页面的会话,则转到
    登录
    页面。在下面 我已经检查了为您创建的
    user\u详细信息
    页面 理解力

  • 在登录方法中,您应该检查
    是否已登录
    如果是,则应转到
    仪表板
    页面。我创造了一个 用于该
    的方法已标记为
    。请检查一下

  • 不要在控制器中添加将要执行的
    会话\u start()
    关注CI核心

  • 使用CI核心具有的内置
    重定向
    方法


  • 如果需要所有页面,则应在构造函数级别检查会话 要在控制器中进行身份验证


请检查以下几点

  • 在您的情况下,不应在
    constructor
    级别,也就是说,您的控制器由公共和经过身份验证的两部分组成 页。因此,它将在这个内部循环/重定向 仅限控制器

  • 将会话检查条件移动到特定页面并重定向 如果假定没有经过身份验证的页面的会话,则转到
    登录
    页面。在下面 我已经检查了为您创建的
    user\u详细信息
    页面 理解力

  • 在登录方法中,您应该检查
    是否已登录
    如果是,则应转到
    仪表板
    页面。我创造了一个 用于该
    的方法已标记为
    。请检查一下

  • 不要在控制器中添加将要执行的
    会话\u start()
    关注CI核心

  • 使用CI核心具有的内置
    重定向
    方法


  • 如果需要所有页面,则应在构造函数级别检查会话 要在控制器中进行身份验证


请检查以下几点

  • 在您的情况下,不应在
    constructor
    级别,也就是说,您的控制器由公共和经过身份验证的两部分组成 页。因此,它将在这个内部循环/重定向 仅限控制器

  • 将会话检查条件移动到特定页面并重定向 如果假定没有经过身份验证的页面的会话,则转到
    登录
    页面。在下面 我已经检查了为您创建的
    user\u详细信息
    页面 理解力

  • 在登录方法中,您应该检查
    是否已登录
    如果是,则应转到
    仪表板
    页面。我创造了一个 用于该
    的方法已标记为
    。请检查一下

  • 不要在控制器中添加将要执行的
    会话\u start()
    关注CI核心

  • 使用CI核心具有的内置
    重定向
    方法


  • 如果需要所有页面,则应在构造函数级别检查会话 要在控制器中进行身份验证


请检查以下几点

  • 在您的情况下,不应在
    constructor
    级别,也就是说,您的控制器由公共和经过身份验证的两部分组成 页。因此,它将在这个内部循环/重定向 仅限控制器

  • 将会话检查条件移动到特定页面并重定向 如果假定没有经过身份验证的页面的会话,则转到
    登录
    页面。在下面 我已经检查了为您创建的
    user\u详细信息
    页面 理解力

  • 在登录方法中,您应该检查
    是否已登录
    如果是,则应转到
    仪表板
    页面。我创造了一个 用于该
    的方法已标记为
    。请检查一下

  • 不要在控制器中添加将要执行的
    会话\u start()
    关注CI核心

  • 使用CI核心具有的内置
    重定向
    方法


  • 如果需要所有页面,则应在构造函数级别检查会话 要在控制器中进行身份验证

拆下线路

session_start();
codeigniter自行处理。
替换这个

header('Location: '.base_url().'login');

但请确保已加载url帮助程序

删除该行

session_start();
codeigniter自行处理。
替换这个

header('Location: '.base_url().'login');

但请确保已加载url帮助程序

删除该行

session_start();
codeigniter自行处理。
替换这个

header('Location: '.base_url().'login');

但请确保已加载url帮助程序

删除该行

session_start();
codeigniter自行处理。
替换这个

header('Location: '.base_url().'login');


但请确保已加载url帮助程序

在构造时检查会话没有错误。即使它比在所有方法中检查会话更好。@ShaifulIslam,取决于控制器…如果该控制器中的某些页面是公共的,我们不应该在constructor中检查会话。Ashik在您的情况下,它不会检查所有页面,无论此人是否登录,我明白你的意思,但如果离开公共页面,只检查受保护页面的登录,无论我需要签入每个函数还是需要打开一个单独的控制器,如果所有页面都需要在控制器中进行身份验证,则应在构造函数级别检查会话。在构造函数中检查会话没有错。即使是更好的方法是根本不检查会话