php 7.2 — ini_set не может установить переменные сеанса — PHP 7.2.0 и выше

вот пример с gc_maxlifetime но это не сработало ни для одного из session. переменные, которые я пробовал

<?php
session_start();
ini_set('session.gc_maxlifetime', 1500);

Это работало до PHP 7.2.0 и теперь выдает это предупреждение:

Предупреждение: ini_set (): сеанс активен. Вы не можете изменить сеанс
Настройки ini модуля в это время в / in / nOv0L в строке 3

введите описание изображения здесь

https://3v4l.org/nOv0L

Я проверил изменений но я не могу найти причину для этого.

Может кто-нибудь сказать мне, что изменилось, и как я могу обойти это?


постскриптум Я знаю, что я мог бы сделать это так:

 ini_set('session.gc_maxlifetime', 1500);
session_start();

но это не совсем вопрос моего вопроса.

2

Решение

Даже если нет предупреждения, изменение настройки после начала сеанса не будет иметь никакого эффекта.

руководство говорит

Сборка мусора может происходить во время начала сеанса

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

То, что вы, вероятно, испытываете, является артефактом других изменений, таких как добавление этого сообщения в качестве предупреждения (все другие источники, которые я нашел, например, например, Сообщение: ini_set (): сеанс активен. Вы не можете изменить настройки ini модуля сеанса в это время. упомяните это просто как «сообщение» без связанного уровня).

3

Другие решения

Хорошо, внесите все изменения в конфигурацию перед началом сеанса:

ini_set('session.gc_maxlifetime', 1500);
session_start();
1

По вопросам рекламы [email protected]