Как передать сеанс в ckfinder в codeigniter 3?

Я меняю код config.php, как сказано в документе, но не могу передать сеанс в этот файл.

Код в CKfinder/config.php:

<?php
    session_start();

    function CheckAuthentication(){
        if(isset($_SESSION['User']['CK_check'])){
            return true;
        }else{
            return false;
    }
    ...
?>

Я создал $_SESSION['User']['CK_check'] при входе пользователя.

нужна помощь.

Большое спасибо!


person svcputl3y7    schedule 05.09.2015    source источник


Ответы (1)


http://php.net/manual/en/session.configuration.php#ini.session.save-handler Если вы выберете обработчик файлов по умолчанию. путь сохранения сеанса

Файл: ckfinder/config.php.


    // get the session_id from codeigniter cookie.   
    $session_id = $_COOKIE['ci_session'];

    // get the session data by session_id,replace to your session save path

    $content = file_get_contents(dirname(__FILE__) . '/../../application/common/ci_session/ci_session' . $session_id);

    // Start new or resume existing session
    session_start();

    // Decodes session data from a session encoded string
    session_decode($content);

Если вы выберете обработчик redis, вы можете сделать следующее:

    $session_id = $_COOKIE['ci_session'];
    // $content = file_get_contents(dirname(__FILE__) . '/../../application/common/ci_session/ci_session' . $session_id);

    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    $content = $redis->get('ci_session:' . $session_id);
    $redis->close();
    // session_id($session_id);
    session_start();
    session_decode($content);
person chaegumi    schedule 10.11.2015
comment
Хотя этот фрагмент кода может решить вопрос, включая объяснение вне кода действительно помогает улучшить качество вашего поста. Помните, что вы отвечаете на вопрос для будущих читателей, и эти люди могут не знать причин вашего предложения кода. Пожалуйста, старайтесь не перегружать свой код поясняющими комментариями, это снижает читабельность как кода, так и пояснений! - person Kyll; 12.11.2015
comment
Спасибо за ваш ответ, но это не работает для меня. - person svcputl3y7; 22.11.2015
comment
А у меня нет этого пути /../../application/common/ci_session/ci_session. - person svcputl3y7; 22.11.2015
comment
@shadowPaw путь является примером. вы должны изменить свой путь - person chaegumi; 26.01.2016
comment
@shadowPaw Понятия не имею, сначала я получаю имя файла cookie ci_session (значение по умолчанию в codeigniter), затем я получаю данные сеанса с помощью файла cookie и использую функцию session_decode (например, php.net/manual/en/function.session-decode.php#53232) для декодирования данных сеанса. может нормально использовать $_SESSION - person chaegumi; 26.01.2016
comment
У меня тот же вопрос относительно передачи данных сеанса в ckfinder с помощью codeigniter, и этот ответ совсем не помогает. Некоторое объяснение было бы неплохо. - person vertigoelectric; 10.10.2016
comment
Вот решение, которое хорошо работает для меня Codeigniter 3.x, Ion-auth, CKFinder - как передать статус входа в систему из ion-auth в файл конфигурации CKFinder, и @vertigoelectric я видел ваш новый вопрос, который также мне очень помогает, спасибо PaulID. Спасибо вам всем. - person svcputl3y7; 16.06.2018