Я нахожусь в процессе обновления некоторых старых сайтов Codeigniter 2.x для использования php 7.3 и последней версии Codeigniter (3.1.10), и столкнулся с ошибкой, когда аутентификация CKFinder больше не принимает собственный сеанс PHPэто работало в прошлом.
Это ранее работало:
$_SESSION['authorized'] = TRUE;
А затем внутри конфигурации CKFinder
return isset($_SESSION['authorized']) && $_SESSION['authorized'];
Однако это дольше распознает сеанс.Я провел некоторые исследования и нашел некоторые другие решения, которые включают использование библиотеки сессий CI в конфигурации CKFinder путем загрузки в index.php CI.например,
//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.
Я обнаружил очень похожие проблемы, но предоставленное решение не даетработа, а английский очень плохой
Вызов функции-члена () на нулевом MX / Modules.php Номер строки: 8 ckeditor и kcfinder
Яинтересно, сталкивался ли кто-нибудь с этим раньше или знает способ обойти это и просто использовать нативный php-сеанс, как я делал это в прошлом.