Ogni volta che ricarichi la pagina (visualizzando di volta in volta pagina1(), pagina2()...) perdi i dati passati nelle pagine precedenti.

Per evitare questo in ogni nuova pagina dei riportare (magari in maniera nascosta, o memorizzandoli in un array di sessione) i dati letti in precedenza.

Ti spiego con un esempio:
Codice PHP:

<?php

$pagina 
= (isset($_GET['pagina']) && $_GET['pagina'] != '') ? $_GET['pagina'] : '1';

switch (
$pagina) {
    case 
'1' :
        
pagina1();
        break;
    case 
'2' :
        
pagina2();
        break;
    case 
'3' :
        
pagina3();
        break;
    case 
'update' :
        
update();
        break;    
}

?>

<?php
function pagina1(){
?>

<form action="<?php echo $_SERVER['PHP_SELF'] . "?pagina=2"?>" method="post">
<table width="780" border="0" align="center" cellpadding="5" cellspacing="1">
   <td align="center" >Nome: <input name="nome" type="text" id="nome" size="30"></td>
   <td align="center">Cognome: <input name="cognome" type="text" id="cognome" size="30"></td>
  <td width="75" align="center"> <input name="pagina2" type="submit" id="pagina2" value="pagina 2"></td>
  </table>
</form>

<?php
}
?>


<?php
// QUI HAI I DATI PASSATI DA PAGINA1 IN $_POST
function pagina2(){
?>

<form action="<?php echo $_SERVER['PHP_SELF'] . "?pagina=3"?>" method="post">
  <table width="780" border="0" align="center" cellpadding="5" cellspacing="1">
   <td align="center" >Telefono: <input name="telefono" type="text" id="telefono" size="10"></td>
   <td align="center">Fax: <input name="fax" type="text" id="fax" size="10"></td>
  <td width="75" align="center"> <input name="pagina3" type="submit" id="pagina3" value="pagina 3"></td>
  </table>
</form>

<?php
}
?>

<?php
// QUI PERDI I DATI PASSATI DA PAGINA1
// MA HAI I DATI PASSATI DA PAGINA2 IN $_POST
function pagina3(){
$telefono $_POST['telefono'];
$fax $_POST['fax'];
?>

<form action="<?php echo $_SERVER['PHP_SELF'] . "?pagina=update"?>" method="post">
  <table width="780" border="0" align="center" cellpadding="5" cellspacing="1">
   <td align="center" >email: <input name="email" type="text" id="email" size="10"></td>
<tr>
  <td align="right"></td>
  <td align="right"></td>
  <td width="75" align="center">
<input name="Update" type="submit" id="Update" value="pagina modifica"></td>
</tr>
</table>
</form>

<?php
}
?>

<?php
// QUI PERDI TUTTO TRANNE I DATI PASSATI DA PAGINA3
function update(){
    
$nome $_POST['nome'];
    
$cognome $_POST['cognome'];
    
$telefono $_POST['telefono'];
    
$fax $_POST['fax'];
    
$email $_POST['email'];
    echo 
$nome;
    echo 
$cognome;
    echo 
$telefono;
    echo 
$fax;
    echo 
$email;
}
?>
Ora per memorizzare il tutto dovresti fare:
Codice PHP:
session_start();

$pagina = (isset($_GET['pagina']) && $_GET['pagina'] != '') ? $_GET['pagina'] : '1';

switch (
$pagina) {
    case 
'1' :
        
pagina1();
        break;
    case 
'2' :
        
pagina2();
        break;
    case 
'3' :
        
pagina3();
        break;
    case 
'update' :
        
update();
        break;    
}

function 
pagina1() {
   echo 
"
       <form ...>
            ...
       </form>
   "
}

function 
pagina2() {
   
$_SESSION['nome'] = $_POST['nome'];
   
$_SESSION['cognome'] = $_POST['cognome'];

   echo 
"
       <form ...>
            ...
       </form>
   "
}

function 
pagina3() {
   
$_SESSION['telefono'] = $_POST['telefono'];
   
$_SESSION['fax'] = $_POST['fax'];

   echo 
"
       <form ...>
            ...
       </form>
   "
}

function 
update(){
    
$nome $_SESSION['nome'];
    
$cognome $_SESSION['cognome'];
    
$telefono $_SESSION['telefono'];
    
$fax $_SESSION['fax'];

    
$email $_POST['email'];

    echo 
$nome;
    echo 
$cognome;
    echo 
$telefono;
    echo 
$fax;
    echo 
$email;

tutto qua...