没有登录会话,任何人都无法访问 codeigniter 4 中的控制器

Posted

技术标签:

【中文标题】没有登录会话,任何人都无法访问 codeigniter 4 中的控制器【英文标题】:Without login session no one can access controller in codeigniter 4 【发布时间】:2021-06-07 02:31:05 【问题描述】:

我想将所有没有会话的用户引导到登录页面。

我在控制器中创建了一个构造函数。但它不起作用。这是我的代码:

 public function __construct()
    $session = session();
    if($session->username != true)
        return redirect()->to('/login');
    

【问题讨论】:

您当前正在检查您的用户名是否为真,如果您检查它是否为假,会发生什么? if(!$session->username)? 【参考方案1】:

我解决了。在 Codeigniter 4 中,__construct 方法不起作用。这就是为什么它不起作用。我没有使用 Codeigniter 4 过滤器来重定向到登录页面。这是我的 Codeigniter 过滤器代码:

 class LoginFilter implements FilterInterface

    public function before(RequestInterface $request, $arguments = null)
    
       if(!session()->username)
        return redirect()->to(base_url('login'));
       
    

【讨论】:

【参考方案2】:

你试过了吗:

if($session["username"] != true)

怎么样

if(!isset($_SESSION["username"])) 

【讨论】:

以上是关于没有登录会话,任何人都无法访问 codeigniter 4 中的控制器的主要内容,如果未能解决你的问题,请参考以下文章

Iphone 上的 Codeigniter 会话问题

如何在登录系统中使用会话并在codeigniter中实现注销

PHP Codeigniter 无法正常工作

CodeIgniter 登录会话

codeigniter 无法访问另一个控制器中的会话数据

codeigniter 中的会话令牌更改