Массив как переменная сеанса

Действительно ли возможно сделать массив переменной сеанса в PHP?

Ситуация состоит в том, что у меня есть таблица (страница 1) с некоторыми ячейками, имеющими ссылку на конкретную страницу. Следующая страница будет иметь список имен (страница 2, которую я хочу сохранить в массиве сессии) с их соответствующими флажками. При представлении этой формы это приведет к странице транзакции (страница 3, где значения отправленных флажков сохранены в базе данных для соответствующих имен). Теперь, если я возвращусь к первой странице и нажму другую ячейку, то массив сессии будет содержать новый список имен или старых?

63
задан bluish 17 September 2018 в 13:30
поделиться

2 ответа

Да, PHP поддерживает массивы в качестве переменных сессии. Смотрите эту страницу для примера.

Что касается вашего второго вопроса: как только вы установите переменную сессии, она останется неизменной, пока вы не измените ее или не снимите ее. Таким образом, если 3-я страница не изменит переменную сессии, она останется неизменной, пока 2-я страница не изменит ее снова.

67
ответ дан 24 November 2019 в 16:13
поделиться

Да, вы можете помещать массивы в сессии, пример:

$_SESSION['name_here'] = $your_array;

Теперь вы можете использовать $_SESSION['name_here'] на любой странице, но убедитесь, что вы поместили строку session_start() перед использованием любых функций сессии, поэтому ваш код должен выглядеть примерно так:

 session_start();
 $_SESSION['name_here'] = $your_array;

Возможный пример:

 session_start();
 $_SESSION['name_here'] = $_POST;

Теперь вы можете получить значения полей на любой странице следующим образом:

 echo $_SESSION['name_here']['field_name'];

Что касается второй части вашего вопроса, переменные сессии остаются там, если вы не назначите другие данные массива:

 $_SESSION['name_here'] = $your_array;

Время жизни сессии устанавливается в php. ini файле.

More Info Here

74
ответ дан 24 November 2019 в 16:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: