Sto lavorando ad un form su più pagine, dove l'utente procede di pagina in pagina inserendo alcuni dati in ogni pagina.
Ecco un esempio di come è impostato:
PAGINA 1
PAGINA 2
PAGINA 3
Il form conta 6 pagine in totale. Tutto funziona bene se l'utente non fa errori di inserimento. I dati vengono raccolti una pagina dopo l'altra e infine inseriti nel database.
Tuttavia, c'è un problema se l'utente sbaglia a inserire i dati o lascia qualche campo vuoto. Se, ad esempio, arrivato a pagina 3 dimentica di inserire qualcosa, viene rediretto indietro a pagina 2. Il problema è che a quel punto i dati salvati da pagina 1 sono andati persi.
Sto sbagliando qualcosa con l'uso delle sessioni?
Ecco un esempio di come è impostato:
PAGINA 1
HTML:
<form action="page2.php" method="POST">
input data_page1
</form>
PAGINA 2
PHP:
<?php
session_start();
session_register('data_page1');
$_SESSION['data_page1'] = $_POST['data_page1'];
?>
HTML:
<form action="page3.php" method="POST">
input data_page2
</form>
PAGINA 3
PHP:
<?php
session_start();
session_register('data_page2');
$_SESSION['data_page2'] = $_POST['data_page2'];
?>
Codice:
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>
}
Il form conta 6 pagine in totale. Tutto funziona bene se l'utente non fa errori di inserimento. I dati vengono raccolti una pagina dopo l'altra e infine inseriti nel database.
Tuttavia, c'è un problema se l'utente sbaglia a inserire i dati o lascia qualche campo vuoto. Se, ad esempio, arrivato a pagina 3 dimentica di inserire qualcosa, viene rediretto indietro a pagina 2. Il problema è che a quel punto i dati salvati da pagina 1 sono andati persi.
Sto sbagliando qualcosa con l'uso delle sessioni?