Мне нужно проверить, зарегистрирован ли пользователь в CodeIgniter или нет.
Вход в систему происходит на сайте Joomla.
Я попробовал следующее для инициализации joomla.
define( '_JEXEC', 1 ); define( 'DS', DIRECTORY_SEPARATOR ); define('JPATH_BASE', dirname(__FILE__) ); require_once ("../includes/defines.php"); require_once ("../includes/framework.php"); $mainframe =& JFactory::getApplication("site"); $mainframe->initialise(); $session =& JFactory::getSession(); $user = $session->get( 'user' );
Но я получил это сообщение:
Файл конфигурации не найден и не доступен код установки. Выход …
- Facebook PHP SDK getSession () не может получить сеанс. Проблема с Cookie?
- Какая сериализация использует функцию PHP функции session_set_save_handler?
- CakePHP сеансы не работают
- Предупреждение о побочном эффекте сеанса PHP с глобальными переменными как источник данных
- Не удается запустить сеанс без ошибок в phpMyAdmin
Joomla установлен на root и codeigniter на root / advanced
Я вызываю код в контроллере.
Как я могу это решить?
РЕДАКТИРОВАТЬ:
Теперь я получаю эту ошибку:
Возникла ошибка PHP
Уровень важности: уведомление
Сообщение: Неопределенная переменная: BM
Имя файла: core / CodeIgniter.php
Номер строки: 364
редактировать
Мой контроллер выглядит так
function is_logged() { define( '_JEXEC', 1 ); define( 'JPATH_BASE', '../'); define( 'DS', DIRECTORY_SEPARATOR ); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); //require_once ("../libraries/joomla/user/authentication.php"); $mainframe =& JFactory::getApplication("site"); $mainframe->initialise(); $session =& JFactory::getSession(); $user = $session->get( 'user' ); }
Структура каталога
--Public_html --Joomla Istallation files --Advanced [This is a folder ,i installed codeignitor on this folder]
Таким образом, путь к joomla – site.com/
а путь к Codeignitor – site.com/advanced
Подробнее об ошибке
В строке 364 на Codeignitor Core сказано:
// Mark a benchmark end point $BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_end');
и я могу видеть следующее в начале ядра CI
$BM =& load_class('Benchmark', 'core'); $BM->mark('total_execution_time_start'); $BM->mark('loading_time:_base_classes_start');
Я знаю его старый пост, но вам нужно убедиться, что JPATH_BASE указывает на каталог, в котором находится ваш файл configuration.php. Я бы использовал абсолютный путь, а не относительный путь.