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
Codeigniter 坦克“授权会话:有时”-&燃气轮机;ci";有时不是_Codeigniter_Session_Tankauth - Fatal编程技术网

Codeigniter 坦克“授权会话:有时”-&燃气轮机;ci";有时不是

Codeigniter 坦克“授权会话:有时”-&燃气轮机;ci";有时不是,codeigniter,session,tankauth,Codeigniter,Session,Tankauth,我的应用程序是PHP/CodeIgniter/TankAuth 我的数据库中有各种帐户余额,我想在我的应用程序页面上显示此帐户余额。所以我在所有方面都做得很好,在会话数据中保持平衡 在某些情况下,余额仅在登录时更改。因此,在tank_auth组件中,有一个控制器、一个库等。流程是auth controller登录调用tank_auth library登录函数,在该函数中创建会话,然后调用模型来更新登录信息(IP地址、上次登录等),这些都是现成的 因此,我在库中扩展了会话方面,添加了我自己的用户数

我的应用程序是PHP/CodeIgniter/TankAuth

我的数据库中有各种帐户余额,我想在我的应用程序页面上显示此帐户余额。所以我在所有方面都做得很好,在会话数据中保持平衡

在某些情况下,余额仅在登录时更改。因此,在tank_auth组件中,有一个控制器、一个库等。流程是auth controller登录调用tank_auth library登录函数,在该函数中创建会话,然后调用模型来更新登录信息(IP地址、上次登录等),这些都是现成的

因此,我在库中扩展了会话方面,添加了我自己的用户数据“account\u balance”。这很好,但问题是当平衡发生变化时,我的会话数据“落后”,我真的很难想出如何更新它

第一种尝试是在用户模型(库存标准Tank_Auth模型)中更新数据库后,简单地尝试并更新会话信息。它不起作用,给了我一个错误

经过一些实验,我发现我不明白这是怎么回事

echo  $this->session->userdata('ip_address');      //works fine - no errors
echo  $this->ci->session->userdata('ip_address');  //fail
Tank_auth模块(库、控制器、模型等)有时引用ci->sessions,有时不引用,但它同时使用这两个模块

在类构造函数中,它还使用:

$this->ci =& get_instance();  //in the library
$ci =& get_instance();        //in the model
我有两个错误:

  • 消息:未定义的属性:Auth::$ci
  • 正在尝试获取非对象的属性
我的印象是,人们会使用CI会话,因为它有一些很好的功能,如果不需要,也可以不使用。但同时使用这两种方法

我错过了什么


提前谢谢

我试图理解的是$this->session和$this->ci->session之间的区别通常在我们的控制器函数中,我们使用$this构造调用任何可用的CodeIgniter函数,get_实例函数返回CodeIgniter超级对象,因此,我们要么使用$this构造,要么在CodeIgniter用户指南中使用超级对象变量define by&get_instance(),它表示CI会话类不使用本机PHP会话。因此,如果“$this->ci->session”是CodeIgniter会话类,“$this->session”是本机PHP会话类,那么这个Tank_Auth库实际上同时使用了这两个类。。。。正确的?为什么要这样做?
//if you are using get_instance() in codeigniter then user following syntax to write code:
$ci =& get_instance();
echo $ci->session->userdata("ip_address");