Возможно ли сделать массив переменной сеанса в PHP. Ситуация заключается в том, что у меня есть таблица (стр. 1) с некоторыми ячейками, имеющими ссылку на определенную страницу. На следующей странице будет список имен (страница 2, которые я хочу сохранить в массиве сеансов) с их соответствующими флажками. При отправке этой формы она приведет к странице транзакции (страница 3, где значения размещенных флажков хранятся в базе данных для соответствующих имен). Теперь, если я вернусь на первую страницу и нажму другую ячейку, будет ли в массиве сеансов новый список имен или старых?
Да, PHP поддерживает массивы как переменные сеанса. См. Эту страницу для примера.
Что касается вашего второго вопроса: как только вы установите переменную сеанса, она останется прежней до тех пор, пока вы ее не измените или не unset
. Поэтому, если 3-я страница не изменяет переменную сеанса, она останется неизменной до тех пор, пока вторая страница не изменит ее снова.
Да, вы можете помещать массивы в сеансы, например:
$_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 .
Больше информации здесь
Сначала измените массив на строку с помощью функции implode (). Например $number=array(1,2,3,4,5,...); $stringofnumber=implode("|",$number);
$number=array(1,2,3,4,5,...); $stringofnumber=implode("|",$number);
затем передать строку в сеанс. например $_SESSION['string']=$stringofnumber;
поэтому, когда вы переходите на страницу, где вы хотите использовать массив, просто взорвите свою строку. например $number=explode("|", $_SESSION['string']);
наконец, номер – это ваш массив, но не забудьте запустить массив на каждой странице.
session_start(); //php part $_SESSION['student']=array(); $student_name=$_POST['student_name']; //student_name form field name $student_city=$_POST['city_id']; //city_id form field name array_push($_SESSION['student'],$student_name,$student_city); //print_r($_SESSION['student']); <table class="table"> //html part <tr> <th>Name</th> <th>City</th> </tr> <tr> <?php for($i = 0 ; $i < count($_SESSION['student']) ; $i++) { echo '<td>'.$_SESSION['student'][$i].'</td>'; } ?> </tr> </table>