php - 我如何在我的其他 CodeIgniter Controller 中使用 __construct 函数

标签 php class codeigniter

我在这个构造函数中有一个名为 member 的 controller

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

我想在我的另一个 Controller 中检查用户是否已登录我如何在我的另一个名为配置文件和其他 Controller 中使用此功能

这是我使用 CodeIgniter 的第一个项目

最佳答案

您的身份验证检查应该在库中:

这是基本的 codigniter 身份验证脚本的摘录:

class Site_sentry 
{
    function Site_sentry()
    {
        $this->obj =& get_instance();
    }

function is_logged_in()
{
    if ($this->obj->session) 
    {
        if ($this->obj->session->userdata('session_logged_in'))
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }
    else
    {
        return FALSE;
    }
} 

   function login_routine()
   {
     //do login here (enter into session)
   }
}

此库存储在 application/libraries 中,文件名以其类命名并带有 .php 后缀。

然后你可以将它添加到你的自动加载配置文件 application/conig/config.php:

$autoload['libraries'] = array('database', 'site_sentry', 'session');

或者在每个 Controller 中手动加载它:

$this->load->library('Site_sentry);

然后你可以在 Controller 中检查你的 session ,像这样:

 class Class extends Controller{

    function Class()
    {   
       parent::Controller();
       if( $this->site_sentry->is_logged_in() == FALSE){
            redirect('managerlogin/');
        }

    }
   }

另请查看此文档页面 http://codeigniter.com/user_guide/libraries/sessions.html ;特别感兴趣的是将 session 存储到数据库部分。

关于php - 我如何在我的其他 CodeIgniter Controller 中使用 __construct 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234296/

相关文章:

php - 通过 php 和 codeigniter 批量发送电子邮件

php - 左外连接查询中的简单逻辑

C++ 错误 : conversion to non-scalar type requested?

php - 如何知道客户端在连接到我的服务器时使用的 Internet 协议(protocol) (IP) 版本?

c++ - 在类声明 block 的内部和外部使用 typedef 语句

java - 使用#recycle() 后应回收类型化数组

PHP codeIgniter 查询区分大小写,想要使其不敏感

php - 管理 CodeIgniter 中的 "A Database Error Occurred"1062 错误

php - 微优化值得花时间吗?

PHP mysqli 返回错误的列