Предупреждение о исправлении PHP: ini_set (): сеанс активен

У меня есть этот файл конфигурации:

error_reporting(E_ALL);
ini_set("display_errors", 1);
ini_set('session.cookie_httponly', 1); //This line 4 and error Line

и этот загрузчик конфигурации:

namespace App\Core;
class Config
{
    // this is public to allow better Unit Testing
    public static $config;

    public static function get($key)
    {
        if (!self::$config) {

            $config_file = '../application/config/config.' . Environment::get() . '.php';

            if (!file_exists($config_file)) {
                return false;
            }

            self::$config = require $config_file;
        }

        return self::$config[$key];
    }
}

А этот controller.php:

namespace App\Core;

/**
 * This is the "base controller class". All other "real" controllers extend this class.
 * Whenever a controller is created, we also
 * 1. initialize a session
 */
class Controller
{
    public $templates;
    public function __construct()
    {
        // always initialize a session
        Session::init();

        Auth::checkSessionConcurrency();

        $this->templates = new \League\Plates\Engine(Config::get('PATH_VIEW'));
        $this->db = new DB(Config::get('DB_TYPE'), Config::get('DB_HOST'), Config::get('DB_USER'), Config::get('DB_PASS'), Config::get('DB_NAME'), Config::get('DB_PORT'));
    }
}

Теперь для контроллера индекса у меня есть:

namespace App\Front\Controller;
use App\Front\Model\NoteModel;
use App\Core\Config;
class IndexController extends \App\Core\Controller
{
    /**
     * Construct this object by extending the basic Controller class
     */
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {

        echo $this->templates->render('index/index', [NoteModel::getAllNotes()]);

    }
}

Теперь в действии (PHP 7.2) я вижу эту ошибку:

Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in C:\xampp\htdocs\cms\application\config\config.development.php on line 4

я знаю: невозможно поставить ini_set после запуска сеанса в php> 7:

https://3v4l.org/hp0sg

МОЕ ИСПРАВЛЕНИЕ: Я работаю с контроллером и Двигаться, эти две строки до Session::init(); в Controller.php:

$this->templates = new \League\Plates\Engine(Config::get('PATH_VIEW'));
$this->db = new DB(Config::get('DB_TYPE'), Config::get('DB_HOST'), Config::get('DB_USER'), Config::get('DB_PASS'), Config::get('DB_NAME'), Config::get('DB_PORT'));

И в действии Не видеть / показывать ошибку. В чем проблема и мое ИСПРАВЛЕНИЕ (переместить код до сеанса) верный способ ?! Спасибо за любую помощь.

Почему бы просто не установить эти настройки ini в php.ini?

delboy1978uk 19.07.2018 12:16

@ delboy1978uk: вы имеете в виду создать / добавить php.ini в корневую папку моего скрипта и удалить из файла конфигурации ?!

LineLone 19.07.2018 12:19

У вашей установки php будет php.ini в вашей папке xampp somehwre. Найдите его, измените настройки в соответствии с вашим кодом и перезапустите apache. Если это сработает, я напишу правильный ответ, чтобы другие знали, что делать. (Это должно сработать)

delboy1978uk 19.07.2018 12:23

@ delboy1978uk: Конечно, но если у меня нет доступа для редактирования php.ini на сервере, я не могу исправить это предупреждение.

LineLone 19.07.2018 12:27

вы используете PHP как модуль apache? в таком случае вы также можете изменить настройки в .htaccess. secure.php.net/manual/en/configuration.changes.php

delboy1978uk 19.07.2018 12:29

В противном случае я бы с самого начала поместил эти настройки в ваш index.php.

delboy1978uk 19.07.2018 12:30

@ delboy1978uk: если добавление в index.php исправлено и не показывает предупреждающее сообщение, но как проверить, что ini_set включен и работает правильно ?!

LineLone 19.07.2018 12:40

пользователь ini_get (); может быть в вашем контроллере, чтобы проверить значение конфигурации echo ini_get ('session.cookie_httponly'); die ('--- остановись здесь ---');

Amitesh Bharti 19.07.2018 14:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
619
0

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