CKFinder с Codeigniter 3 и PHP 7.3 — CheckAuthentication с сеансом PHP

Я нахожусь в процессе обновления некоторых старых веб-сайтов Codeigniter 2.x для использования php 7.3 и последней версии Codeigniter (3.1.10) и столкнулся с ошибкой, связанной с аутентификацией CKFinder, которая больше не принимает собственный сеанс PHP, который работал. в прошлом.

Раньше это работало:

$_SESSION['authorized'] = TRUE;

А потом внутри конфига CKFinder

return isset($_SESSION['authorized']) && $_SESSION['authorized'];

Однако это дольше распознает сеанс. Я провел некоторое исследование и нашел некоторые другие решения, которые включают использование библиотеки сеансов CI внутри конфигурации CKFinder путем загрузки в CI index.php. например

//test_session.php  (inside the root of CKFinders where config.php is stored)
ob_start();
define("REQUEST", "external");
$temp_system_path = $_SERVER["DOCUMENT_ROOT"].'/system';
$temp_application_folder = $_SERVER["DOCUMENT_ROOT"].'/application';
include($_SERVER["DOCUMENT_ROOT"].'/index.php');
ob_end_clean();
$CI =& get_instance();

if ($CI->session->userdata('authorized') === TRUE) {
  return true;
}

  

Этот код работает сам по себе в файле test_sesion.php, хотя мне кажется, что это немного излишне, так как мне также пришлось внести изменения в index.php, чтобы проверить эти временные пути, и обновить контроллер по умолчанию, чтобы игнорировать внешние Запросы. Проблема в том, что когда я пытаюсь внедрить его в конфигурацию CKFinder, он выдает кучу ошибок PHP, особенно в связи с тем, как я использую HVMC с Codeigniter.

Я нашел очень похожие проблемы, но предоставленное решение не работает, а английский очень плохой.

Вызов функции-члена item() для нулевого номера строки MX/Modules.php: 8 ckeditor и kcfinder

Мне интересно, сталкивался ли кто-нибудь с этим раньше или знает способ обойти это и просто использовать собственный сеанс php, как я делал в прошлом.

метод, который вы дали, является единственным методом, который я когда-либо нашел для работы с приложениями за пределами области ci.

Alex 06.06.2019 05:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
926
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В итоге я решил эту проблему, обновив CKEditor и CKFinder до последней версии, она может иметь лучшую поддержку PHP 7.3, чем предыдущая версия, которую я использовал.

Похоже, что в PHP 5.X с CI 2.X и более ранних версиях CKFinder можно просто использовать переменную $_SESSION, но в более новых версиях CI 3.X с PHP 7.X требуется более сложное решение.

Если вы используете HMVC от wiredesignz, как я, то другой вопрос, на который я ссылался, полезен, поскольку он устраняет другую ошибку при попытке реализовать это.

Другие вопросы по теме