PHP多页形式跨会话形成数据

I am working on a multipage form, where users proceed saving data form page to page. Here is an idea of the flow:

PAGE 1

<form action="page2.php" method="POST">
input data_page1
</form>

PAGE 2

<?php
session_start();
session_register('data_page1');
$_SESSION['data_page1'] = $_POST['data_page1'];
?>

<form action="page3.php" method="POST">
input data_page2
</form>

PAGE 3

<?php
session_start();
session_register('data_page2');
$_SESSION['data_page2'] = $_POST['data_page2'];
?>

if (!$_SESSION['data_page2']){
echo "Go back to ".'<a href="page2.php">'."page 2".'</a>';
}
else{
<form action="page4.php" method="POST">
input data page3
</form>
}

Everything works fine if users input data correctly.

If at page 3 they they forget to input something, they are redirected back to page 2. The problem is that when they are redirected there, the data previously stored from page 1 are lost.

Are sessions the problem here?

its give you an idea how to handle

session_start();

if(!isset($_SESSION['data_page1']))

{

  session_register('data_page1');


  $_SESSION['data_page1'] = $_POST['data_page1'];

}

else

{

 //user moving back 

 //how you want handle it write here

}