Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 CodeIgniter-无法访问帮助程序中的会话_Php_Codeigniter_Session - Fatal编程技术网

Php CodeIgniter-无法访问帮助程序中的会话

Php CodeIgniter-无法访问帮助程序中的会话,php,codeigniter,session,Php,Codeigniter,Session,这真让我抓狂。我过去使用过这个,没有任何问题 所以我有一个Codeigniter安装,在其中我自动加载了会话。我还自动加载了一个名为“site”(site_helper.php)的助手 现在在site_helper中,我执行以下操作: function checkLogin(){ $ci = &get_instance(); $session = $ci->session->user['id']; //this line throws errow } checkLo

这真让我抓狂。我过去使用过这个,没有任何问题

所以我有一个Codeigniter安装,在其中我自动加载了会话。我还自动加载了一个名为“site”(site_helper.php)的助手

现在在site_helper中,我执行以下操作:

function checkLogin(){
  $ci = &get_instance();
  $session = $ci->session->user['id']; //this line throws errow
}

checkLogin();
我得到的结果是:

A PHP Error was encountered

Severity: Notice
Message: Undefined property: Welcome::$session
Filename: helpers/site_helper.php
Line Number: 15
如果您想知道什么是“欢迎”,它是我的默认控制器。这在我工作过的其他网站上效果很好。我完全不知道这里有什么问题

感谢您的帮助

你试过了吗

文件名:application/helpers/Site\u helper.php“第一个字母必须大写”

然后在控制器上

public function somefunction()
{
   $this->load->helper('site');

   // Test only
   echo checkLogin();
} 
确保在使用缓存文件夹时已设置会话保存路径。这就是我建立我的公司的方式。具有文件夹权限0700

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = APPPATH . 'cache/session/';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = TRUE;

可能您忘记加载会话库了

function checkLogin(){ $ci = &get_instance(); //load the session library $ci->load->library('session'); $session = $ci->session->user['id']; //this line throws errow } 函数checkLogin(){ $ci=&get_instance(); //加载会话库 $ci->load->library('session'); $session=$ci->session->user['id'];//此行抛出错误 }
确保autoload.php文件中有自动加载会话库

Autoload.php :$autoload['libraries']=array('session')

要访问会话变量,请执行以下操作:

 $CI = & get_instance();
//or you can load library in the site helper also
 $CI->load->library('email');
 $data = $CI->session->all_userdata();

打印(数据)

。你会得到有用的结果

$ci->session->user['id'];
//replace with
$ci->session->userdata("session_variable_name");
如果不起作用,请按照下面的说明操作 请检查您的PHP版本,
我也遇到了同样的问题,然后我知道我是在Codeigniter 2和PHP5.6中构建应用程序的,我用Codeigniter 2.0和PHP7.3版本检查了这个问题。因此,我尝试使用PHP5.6版本,它成功了。

是否加载了会话库的可能副本?@Difster:否,这不是副本,因为我没有将任何内容传递给帮助程序。@VincentDecaux是的,它加载正确。
=&
应该是
=
不确定这是否是原因。。但是<代码>$ci=&get_instance()
$ci->session->user['id'];
//replace with
$ci->session->userdata("session_variable_name");