У меня проблема с сбросом значения переменной сеанса в PHP.
Я очистил все куки файлы браузера и кеш и загрузил страницу. Контроллер страницы вызывается, где записывается следующий код:
if(isset($_SESSION['event_generic_sequence'])){
unset($_SESSION['event_generic_sequence']);
}
$_SESSION['event_generic_sequence'] = array();
Эти контроллеры вызывают функцию в файле класса, где он проверяет, установлен ли сеанс, а затем добавляется значение для сеанса:
$_SESSION['event_generic_sequence'][] = $image_name;
В конце контроллера, если значение сеанса напечатано, я получаю массив из 4 значений. Таким образом, подсчет массива равен 4:
[event_generic_sequence] => Array
(
[0] => 505_c.jpg
[1] => 505_c-1.jpg
[2] => 505_c-2.jpg
[3] => 505_c-3.jpg
)
Когда я перезагружаю страницу. Контроллер получает вызов, а значение сеанса устанавливается в пустой массив. Но в файле класса, если я печатаю значение сеанса. Он показывает предыдущее значение сеанса. Почему файл класса не получает текущее значение сеанса, и значение сеанса похоже кэшировано?
Если я очистил cookie браузера и кеш, значение сеанса пустое и работает нормально. Но если я не последнее значение сессии сохраняются.
Вы можете использовать session_start();
для запуска сеанса и session_destroy();
для уничтожения сеанса еще установите сеанс этой конкретной переменной в значение null или empty.