Значения сеанса сеанса в разбивке на страницы

Я могу передавать значения от одной страницы к другой, но мне нужно передать значение, как это,

Страница 1:

page2.php

Page3.php

Мне нужно передать значения переключателя в файле Page1.php to Page2.php, а также мне нужно использовать тот же сеанс. если форма перенаправляется на страницу 3, я не могу получить значение страницы 1. его проект онлайн-викторины. Я пробовал сеанс, метод формы сообщения и несколько других методов, но я еще не достиг успеха.

Я был бы очень рад, если вы сможете помочь мне с кодом или некоторыми предложениями.

Благодарю!

2 ответа

На самом деле ваш вопрос нечеткий, прежде всего, когда вы используете сеансы, вы должны быть уверены, что вы вызываете session_start() на самой верхней части страницы, во-вторых, вы можете сохранить данные формы в своей переменной сеанса, например

if(isset($_POST['YOUR_SUBMIT_BUTTON_NAME_HERE'])) {
 $store_temp_val1 = $_POST['whatever']; //Sanitize the value first
 $_SESSION['page_one']['first_val'] = $store_temp_val1;
}

Теперь вы можете просто получить значение, сохраненное в переменной сеанса на второй странице, например

echo $_SESSION['page_one']['first_val']; //Will echo the previous page value

Примечание. Используйте session_start() на каждой странице на самом верху.


Лучшей практикой было бы пойти с ООП. Итак, вы можете сделать следующее:

  1. Создайте класс с полями для хранения всей информации, которую вы хотите передать.
class PageInfo
 {
 var $pageTitle;
 var $currentPage;
 var $btnValue;
 .....
 }

2.Нажмите ящик объекта класса PageInfo и назначьте значения, которые вы хотите установить.

$page = new PageInfo(); 
 $page->pageTitle = "Home";
 $page->btnValue = 1; 
 ...

3. Добавьте этот объект (содержащий все детали своей страницы) в супер-глобальную переменную сеанса.

// store session data
 $_SESSION['page'] = $page;

4. Теперь вы можете получить доступ к значению, хранящемуся в сеансе, на разных страницах.

$otherPage = $_SESSION['page'];
 echo $otherPage->pageTitle;
 echo $otherPage->btnValue;

Примечание. Функция session_start() должна появиться до того, как вы напечатаете любое объявление на странице.

licensed under cc by-sa 3.0 with attribution.