You have to set the fields to remember the 'sessions'. Please refer to the below code example:
PHP Code:
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 1 Jan 2000 00:00:00 GMT"); // Date in the past
?>
&
PHP Code:
<?php
session_start();
foreach ($_POST as $key => $val) {
$_SESSION[$key] = $val;
}
if (empty($_POST['step'])) {
?>
<form method="post" method="order.php">
<input type="hidden" name="step" value="1"/>
<input type="whatever" name="myName1" value="<?php echo $_SESSION['myName1']; ?>"/>
</form>
<?php
}
if ($_POST['step'] == 1) {
?>
<form method="post" method="order.php">
<input type="hidden" name="step" value="2"/>
<input type="whatever" name="myName2" value="<?php echo $_SESSION['myName2']; ?>"/>
</form>
<?php
}
if ($_POST['step'] == 2) {
?>
<form method="post" method="order.php">
<input type="hidden" name="step" value="3"/>
<input type="whatever" name="myName3" value="<?php echo $_SESSION['myName3']; ?>"/>
</form>
<?php
}
if ($_POST['step'] == 3) {
?>
<form method="post" method="order.php">
<input type="hidden" name="step" value="4"/>
<input type="whatever" name="myName4" value="<?php echo $_SESSION['myName4']; ?>"/>
</form>
<?php
}
if ($_POST['step'] == 4) {
do(); // do whatever you got to do with the inputed data
clearSession();
// $_POST['step'] is automatically reset to NULL and will direct you to the first page if you reload this order.php from here.
?>
<p>Some "You Are Done" Text</p>
<?php
}
?>
Check your INI (using phpinfo() ) to check is session auto start is on, if not you'll need to use session_start() at the top of the script.
Please consider this a concept, not code to cut and paste. Nothing is validated or processed here.
I use $_SESSION['form'] so you can unset part of the SESSION without unsetting all of it or elements individually.