Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    19

    form su più pagine e sessioni

    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

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


    PAGINA 2

    codice:
    <?php
    session_start();
    session_register('data_page1');
    $_SESSION['data_page1'] = $_POST['data_page1'];
    ?>
    codice HTML:
    <form action="page3.php" method="POST">
    input data_page2
    </form>


    PAGINA 3

    codice:
    <?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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2011
    residenza
    Arezzo
    Messaggi
    194
    Andrebbe analizzato meglio, probabilmente parlo troppo di impulso... ma se ad ogni pagina tu andassi ad incrementare un array che salvi in una sessione, strutturato tipo 'nome_campo'=>'valore_relativo', forse poi aggiornare/integrare dati mancanti potrebbe essere più semplice, del tipo:

    Codice PHP:
    //recuperi i dati in modo da popolare l'array
    $dati['nome'] = $_POST['nome'];
    $dati['mail'] = $_POST['mail'];
    $dati['interessi'] = $_POST['interessi'];
    // .... tutti i dati di ogni pagina
    $_SESSION['dati_form'] = $dati
    Riccardo Sadocchi
    Microsoft MCP C#

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.