Intereting Posts
Могу ли я просто выбрать один столбец в MYSQL вместо всех, чтобы сделать его быстрее? PHP File Transer – эхо ломает вещи, чередуется для отладки? Заголовки кодировки JSON с использованием Sendgrid Переменные сеанса устанавливаются только после обновления страницы. Печатать массив в sendmail Проверьте, имеет ли переменная число php Загрузка файла с помощью NSURLSessionUploadTask на PHP-сервер Какие рамки вы предложите для сильной расширяемой платформы? php 301 перенаправляет фактическое выполнение перенаправления 302 UTF-8 кодированные html-страницы отображают (вопросительные знаки) вместо символов отключение кеша браузера в php или использование javascript php – взорвать строку в. но игнорировать десятичные числа, например 2.9 Как изменить symfony 2 doctrine mapper для использования моего настраиваемого каталога вместо моего Entity Directory в комплекте Как скачать rar-файл с помощью php Как это работает в файлах .phtml в zend framework?

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

Возможно ли сделать массив переменной сеанса в 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>