Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    variabili di sessione nei form

    Ciao a tutti. Mi servirebbero dei chiarimenti circa la logica da seguire nella validazione dei form e nell'utilizzo di variabili di sessione.

    Prima di annoiarvi con valanghe di codice provo a spiegarmi a parole.
    Allora, mettiamo che io abbia queste pagine

    1) inserimento record
    2) pagina che riceve i dati da pagina 1, verifica la correttezza e se tutto ok inserisce i dati.
    3) pagina modifica record
    4) pagina che elabora le modifiche dei record.


    Supponiamo che io sia a pagina 3 e voglia modificare il mio record. Utilizzo le sessioni per mantenere i dati memorizzati nel form qualora qualcosa a pagina 4 non venga validato.
    La mia idea era quella di fare la validazione e nel caso sia andato tutto bene dopo che faccio la query di update elimino le variabili di sessione.

    Mettiamo che io inizio a modificare il mio form a pagina 3 e poi ci ripensi e vada al link di pagina 1.
    Vorrei avere il mio form di inserimento nuovo record vuoto e invece mi ritrovo tutti i dati che erano nel form di modifica visto che le variabili di sessione non sono state cancellate.

    Ovviamente non posso mettere un unset di ciascuna variabile all'inizio della pagina perchè così ogni volta che faccio il controllo sulla pagina 2 e ci fosse qualche problema perderei tutte le variabili. Quale logica devo seguire?

    Vi prego, datemi uno spunto.

  2. #2
    Io uso questa logica:

    Nel form di pagina 3 visualizzo i campi del form e nel campo Value metto il valore della variabile di sessione ke mi tiene traccia del valore eventualmente inserito.

    Alla fine della pagina 3 faccio un unset di tutte le variabili di sessione utilizzate nella pagina corrente.

    Quando faccio il submit del form, vado a pagina 4. Qui per prima cosa inserisco tutte le variabili inviate via POST, nella SESSIONE. Se nell'effettuare i controlli c'è un qualche errore, immediatamente ritorno alla pagina 3 con il comando
    header("Location: ..../pagina3.php");
    exit;

    In tal modo le variabili di sessione sono ancora presenti e vengono inserite nel form, a fine pagina 3, poi, vengono eliminate così quando viene visualizzata la pagina 3 e tu decidi di cambiare pagina, le variabili di sessione non ci sono +.

    Ritorniamo alla pagina 4: se i controlli vanno a buon fine, fai quello ke devi fare e a fine pagina4 elimina tutte le variabili di sessione create ad inizio pagina.

    Spero di essere stato chiaro e di aver capito.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Io solitamente in questi casi neanche uso le variabili di sessione ma mi passo i valori in campi "hidden" nel form
    Le variabili di sessione le uso solamente quando ho dati che devono persistere per più di una o due pagine, come il fatto di essere loggato o meno, di aver scelto una skin particolare o roba del genere

    In una situazione ipotetica pagina1->pagina2->pagina3, in cui voglio che pagina2 invii a pagina3 tutti i dati ricevuti da pagina1 oltre che ai propri, faccio una cosa del genere (immaginando che pagina1 invii i dati a pagina2 via post, altrimenti basta sostituire $_POST con $_GET
    Codice PHP:

    <form action="pagina3.php" method="post">
    <?php
    foreach($_POST as $key=>$value)
    {
      echo 
    "<input type='hidden' name='$key' value='$value'>";
    }
    ?>
    resto del form di pagina 2
    </form>

  4. #4
    In una situazione ipotetica pagina1->pagina2->pagina3, in cui voglio che pagina2 invii a pagina3 tutti i dati ricevuti da pagina1 oltre che ai propri, faccio una cosa del genere (immaginando che pagina1 invii i dati a pagina2 via post, altrimenti basta sostituire $_POST con $_GET


    Penso ke nell'esempio riportato pagina1->pagina2

    A pagina 2 ci si ferma,nel senso ke l'inserimento è stato effettuato e basta.

    Poi, pagina 3 -> pagina4 realizzino un'altra funzionalità ke è quello della modifica, comunque il problema è un'altro:

    Quando da pagina 1.php mandi le variabili a pagina 2.php, se in pagina 2.php ci sono errori per l'inserimento dei dati, vai direttamente a pagina 1.php immagino con il comando location.... in tal caso come fai a spedire un form se questo presuppone ke deve essere visualizzata la pagina e ke devi cliccare sul bottone del form?????? Ecco perché nel caso di errori, per mantenere i valori si usano le sessioni.

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.