Хранение данных формы в виде переменной сеанса на нескольких страницах - PullRequest
0 голосов
/ 25 августа 2018

Мне просто интересно, возможно ли сохранить данные формы в виде сеанса на нескольких страницах?

У меня есть 5 страниц на моем сайте, каждая страница имеет форму с полем ввода.Я хочу сохранить все сеансы и входные значения на всех 5 страницах и echo на последней странице.

Я сохранил session_start(); в одном файле и включил его на каждой странице:

session_start.php

<?php
   session_start();
?> 

В верхней части страницы перед <!DOCTYPE html> я добавляю ее так на каждой странице:

Страница 1:

<?php

    include("config.php");
    require_once("session_start.php");

if (isset($_POST['submit'])) { 
 $_SESSION['email'] = $_POST['email'];

 } 

?>

затем в теле:

<form action="" method"post">
<input type="text" name="email"/>
<input type="submit" name="submit" value="Enter" />
</form>

Страница 2:

<?php

        include("config.php");
        require_once("session_start.php");

    if (isset($_POST['submit'])) { 
     $_SESSION['passwort'] = $_POST['passwort'];

     } 

    ?>

then in the Body again:

    <form action="" method"post">
    <input type="text" name="passwort"/>
    <input type="submit" name="submit" value="Enter" />
    </form>

Я могу повторить email Session на странице 2 без проблем:

<?php
echo $_POST["email"];
 ?>

Но получите ошибку на странице Undefined index: passwort, если я сделаю это так же, как на странице 1.

И продолжитедругие 3 страницы, что не так с моим путем?С моим кодом здесь я могу сохранить сессию только с предыдущей страницы и echo на следующей странице.

Спасибо за просмотр!

1 Ответ

0 голосов
/ 26 августа 2018

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

Да, вам нужно будет передать отправку формыданные от $_POST до $_SESSION массива каждый раз.

После этого фрагмента на странице 1:

if (isset($_POST['email'])) { 
    $_SESSION['email'] = $_POST['email'];
}

Ваша сессия будет содержать:

$_SESSION = ["email" => "example@email.com"];

Затем после этого фрагмента на странице 2:

if (isset($_POST['passwort'])) { 
    $_SESSION['passwort'] = $_POST['passwort'];
}

Ваша сессия будет содержать:

$_SESSION = [
    "email" => "example@email.com",
    "passwort" => "p@$$w()rt"
];

И так далее, для последующих страниц.

Когда вы хотитечтобы проверить, что находится в вашем массиве, вы можете просто позвонить var_export($_SESSION).

Если вы хотите получить доступ к определенным элементам, используйте их ключ.

Например, echo $_SESSION['passwort'];

...