2013-10-15 4 views
1

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

\ 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)); 
        } 
       } 
      } 
     } 

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

ответ

0

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

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

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

Смежные вопросы