我在一个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"]);
答案 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";