Codeigniter Вызов функции-члена set_userdata() для не-объекта

Я получаю фатальную ошибку в приложении 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"]);

person TJ Sherrill    schedule 13.12.2011    source источник
comment
Почему вы вызываете session_start() и используете $_SESSION["user"], а не просто используете библиотеку сеансов CI?   -  person minboost    schedule 14.12.2011


Ответы (4)


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

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

$CI =& get_instance();

$CI->загрузить->библиотека('сеанс');

person Community    schedule 04.03.2014

Вы загружаете библиотеку сеансов в конструкторе и после инструкции parent::__construct()?

person Thierry Otis    schedule 25.08.2014

Вы используете конфигурацию 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";
person Luigi Usai    schedule 22.06.2014