CakePHP ini_set на общем хосте

Я на общем хосте и функция ini_set отключена по соображениям безопасности. Я пытаюсь развернуть CakePHP 2.4.1 на этом хосте. Установка свежего торта приводит к пустой странице, без ошибок, вместо этого, если я прокомментирую эти строки:

\ Lib \ Cake \ Model \ Datasource \ CakeSession.php

if (empty($_SESSION)) {
            if (!empty($sessionConfig['ini']) && is_array($sessionConfig['ini'])) {
                foreach ($sessionConfig['ini'] as $setting => $value) {
                    if (ini_set($setting, $value) === false) {
                        throw new CakeSessionException(__d('cake_dev', 'Unable to configure the session, setting %s failed.', $setting));
                    }
                }
            }
        }

Кажется, все работает нормально. Теперь я спрашиваю, что является недостатком в том, чтобы оставлять фрагменты комментариев (другими словами, за что отвечает этот код)?

1 ответ

Решение

Как указывает сообщение об исключении, имя метода и остальная часть кода указывают настройки сеанса, имя сеанса, время жизни файла cookie, обработчик сохранения и т. Д.

Ваш код может работать нормально, и вы должны быть в состоянии использовать PHP session_*() функции вместо того, чтобы настроить параметры (лучшее место для этого, вероятно, ваш bootstrap.php). Также записываем фиктивное значение в $_SESSION кажется, мешает CakeSession::_configureSession() использовать ini_set()так что вам не нужно изменять его.

Так что это может сработать, но не нужно прыгать через такие обручи. Там нет необходимости отключать ini_set() в правильно настроенной среде общего хостинга, и лично я бы сменил хостера на случай, если они не смогут изменить это поведение.

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