Codeigniter Вызов функции-члена set_userdata () для необъекта - PullRequest
2 голосов
/ 14 декабря 2011

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

5 голосов
/ 14 декабря 2011

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

$ci = & get_instance();
$ci->session->set_userdata("admin", $user[0]["admin"]);
1 голос
/ 04 марта 2014

$ CI = & get_instance ();

$ CI-> load-> Библиотека ( 'сессии');

0 голосов
/ 25 августа 2014

Загружаете ли вы библиотеку сеанса в конструктор и после инструкции parent :: __ construct ()?

0 голосов
/ 22 июня 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";
...