Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何验证用户是否已登录?_Php_Codeigniter - Fatal编程技术网

Php 如何验证用户是否已登录?

Php 如何验证用户是否已登录?,php,codeigniter,Php,Codeigniter,我正在为PHP使用CodeIgniter框架。有些页面专门用于管理,它们位于Admin/*中。当用户登录时,我在会话中存储一些值作为标志,并在控制器中验证它,以测试用户是否已登录。我编写了代码来检查控制器中每个方法中的会话。但是,后来我意识到我不想在每个方法中都编写相同的代码行,因为许多问题都是从可维护性的角度产生的。然后我决定创建一个独占控制器,它只加载管理视图,因此在它的构造函数中我检查会话值。除此之外还有其他方法吗。我做得对吗?或者在CodeIgniter?中提供任何其他安全机制。您已经采

我正在为
PHP
使用
CodeIgniter
框架。有些页面专门用于管理,它们位于
Admin/*
中。当用户登录时,我在会话中存储一些值作为标志,并在控制器中验证它,以测试用户是否已登录。我编写了代码来检查控制器中每个方法中的会话。但是,后来我意识到我不想在每个方法中都编写相同的代码行,因为许多问题都是从可维护性的角度产生的。然后我决定创建一个独占控制器,它只加载管理视图,因此在它的构造函数中我检查会话值。除此之外还有其他方法吗。我做得对吗?或者在
CodeIgniter

中提供任何其他安全机制。您已经采取了最好的方法之一(我的意见),只需将其他管理控制器从该控制器扩展,就可以拥有专门的控制器(管理博客、管理库等)。如果你需要帮助,我很乐意帮助你。

你可以用构造函数方法来做,比如这样

function __construct {
    parent::construct();
    /* Do you login check here */
}
例如:

class Admin extends Controller {

 function __construct()
 {
     parent::__construct(); 
     $this->is_logged_in();
 }

 function is_logged_in()
 {

   $is_logged_in = $this->session->userdata('is_logged_in');
   if(!isset($is_logged_in) || $is_logged_in != true) 
   {
     redirect('login');
   }
 }

嘿,Flakron,我非常感谢您对我的帮助/建议。特别是关于如何首先设置控制器。然后,如何让另一个控制器在扩展CI_控制器的同时扩展它。