如何在codeigniter中创建一个通用函数来检查会话是否存在


How to create a common function in codeigniter for checking if session exist?

我正在创建一个应用程序,in用户必须登录才能访问各种模块。在提供对每个模块的访问之前,我需要检查用户会话是否存在。

现在我在每个功能/模块/控制器中检查这样的会话,以避免未经授权的访问。

if($this->session->userdata('userId')!=''){
   do something;  }

有更好的方法吗?我能有类似的通用功能吗

sessionExist();

以便可以从整个项目通用的任何模块/控制器/函数调用它?

如果是这样的话,我应该在哪里编写这个公共函数,以便可以从任何地方调用它。

如果是类,则创建库。ifonly函数然后创建helper,然后自动加载它们,这样它就可以被称为anywhare。

如果想要一个辅助函数,它就是:

if ( ! function_exists('sessionExist'))
{
    function sessionExist(){
        $CI =& get_instance();
        return (bool) $CI->session->userdata('userId');
    }
}

将文件保存在application/helpers/中,并将其包含在application/config/autoload.php文件中:

$autoload['helper'] = array('my_helper_file');

您可以在创建函数的库或其他库中创建函数

例如:application/libraries/Common.php

public function logged_in()
{    
   return (bool) $this->session->userdata('userId');
}

像这样使用:

if ($this->common->logged_in()) {
   // User logged
} else {
   // User not logged
}

在您设置会话的模型中:

   $data = array(
      'sid' =>$this->input->post('sid'),
       'is_logged_in' => true,
      );
   $this->session->set_userdata($data);

在您的功能/模块/控制器中:

    function __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)
    {
        echo 'You dont have permission to acces this page';
        die();
    }
if(!function_exists('sessionExist'))

函数sessionExist(){
$CI=&get_instance()
$userId=$CI->session->userdata('userId')
if(空($userId)){
重定向(base_url('login'))
}其他{
return(bool)$userId
}
}
}