2011-12-13 4 views
2

Я получаю фатальную ошибку в приложении CI, которое я только что переместил с общего хоста php4 на общий хост php5.Codeigniter Вызов функции-члена set_userdata() для не-объекта

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 в качестве опции.

Специфический код линии Thats взлом:

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

Почему вы вызываете 'session_start()' и используете '$ _SESSION [" user "]', а не просто используете библиотеку сеансов CI? – minboost

ответ

5

Вы не можете использовать $this в качестве помощника в качестве помощника файл только набор функций (без класса есть). Для того, чтобы использовать функциональные возможности, предоставляемые $this контроллера, вы должны сделать:

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

$ CI = & get_instance();

$ CI-> load-> library ('session');

-2

Вы используете стандартную конфигурацию Codeigniter. Проблема заключается в отсутствии КОНФИГУРАЦИИ БАЗЫ ДАННЫХ! Вы должны указать здесь: \ 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"; 
0

Вы загрузки сеанса librairy в конструкторе и после того, как родителю :: __ конструкт() инструкции?