Codeigniter在非对象上调用成员函数set_userdata()

时间:2011-12-13 22:21:45

标签: php codeigniter php4

我在一个CI应用程序中遇到致命错误,我刚从php4共享主机转移到php5共享主机。

Fatal error: Call to a member function set_userdata() on a non-object in /home/chuck_ravenna/bob.ravennainteractive.com/system/application/helpers/authenticate_helper.php on line 13

完全位于以下链接中的代码

https://gist.github.com/1474173

我想知道php版本是否可能成为问题。该站点在旧服务器上运行良好,新服务器没有php4作为选项。

破解的具体代码行是:

    $this->session->set_userdata("admin", $user[0]["admin"]);

4 个答案:

答案 0 :(得分:5)

你不能在帮助器中使用$this,因为辅助文件只是函数的集合(没有类)。要使用控制器的$this提供的功能,您必须执行以下操作:

$ci = & get_instance();
$ci->session->set_userdata("admin", $user[0]["admin"]);

答案 1 :(得分:1)

$ CI =& get_instance();

$ CI->负载>库( '会话');

答案 2 :(得分:0)

您是在构造函数中加载会话库,还是在parent :: __ construct()指令之后加载?

答案 3 :(得分:-2)

您正在使用Codeigniter的默认配置。 问题是:没有DATABASE配置完成! 您必须在此处输入:\ YOUR_APPLICATION_NAME \ application \ config \ database.php

并且您必须使用文本编辑器打开此文件。

设置以下变量,您就完成了:

$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = "127.0.0.1";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "NameOfYourDatabase";