CKFinder с Codeigniter 3 и PHP 7.3 - Проверка аутентификации с помощью PHP-сессии - PullRequest
0 голосов
/ 04 июня 2019

Я нахожусь в процессе обновления некоторых старых сайтов 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-сеанс, как я делал это в прошлом.

1 Ответ

0 голосов
/ 09 июня 2019

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

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

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

...