how 'bout something like this:
<?
session_start ();
function form ($step)
{
extract ($_SESSION);
$steps = array
(
1 => 'first_name',
2 => 'last_name',
3 => 'email'
);
foreach ($steps as $key => $value)
{
if (!isset ($$value)) {$$value = '';}
}
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="POST">
' . $steps[$step] . ': <input type="text" name="data[' . $steps[$step] . ']" value="' . $$steps[$step] . '">
<input type="hidden" name="step" value="' . $step . '"><br>';
if ($step != 1) {echo '<input type="submit" name="submit" value="back">';}
echo '<input type="submit" name="submit" value="next"></form>';
}
if (!isset ($_POST['submit'])) {form (1);}
else
{
foreach ($_POST['data'] as $key => $value) {$_SESSION[$key] = $value;}
if ($_POST['submit'] == 'next' && $_POST['step'] == 3)
{
echo 'you entered:<br><br>';
foreach ($_SESSION as $key => $value) {echo $key . ': <b>' . $value . '</b><br>';}
}
else
{
if ($_POST['submit'] == 'back') {form ($_POST['step'] - 1);}
else {form ($_POST['step'] + 1);}
}
}
?>