Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    problema con le sessioni

    ho realizzato un form su più pagine con le sessioni, funziona tutto, ma se ad esempio alla terza schermata decidessi di tornare indietro alla seconda schermata per modificare un dato, mi rimane comunque in memoria sempre il primo dato inserito finchè non chiudo il browser.
    Non c'è un modo per aggiornare le sessioni se vengono modificate?

  2. #2
    Ciao, certo che è possibile modificare le sessioni, una sessione è come una comune variabile, in effetti la sessione altro non'è che un array così composto:
    $_SESSION['nome'] = "valore";
    quindi una volta impostata una sessione, basta richiamarla e reimpostare il proprio valore quindi:
    $_SESSION['nome'] = "valore modificato";
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    il mio form è così:

    pag1

    session_register("consumo_euro");

    <input type="text" name="consumo_euro" value="<?=$_POST['consumo_euro']?>" size="18" maxlength="16">

    pag2

    session_register("posizione_falda");

    <input type="text" name="posizione_falda" value="<?=$_POST['posizione_falda']?>" size="18" maxlength="16">


    invece tu mi consigli di fare così?


    pag1

    session_register("consumo_euro");
    $_SESSION['consumo_euro'] = "$consumo_euro";

    <input type="text" name="consumo_euro" value="<?=$_POST['consumo_euro']?>" size="18" maxlength="16">

    pag2

    session_register("posizione_falda");
    $_SESSION['posizione_falda'] = "$posizione_falda";

    <input type="text" name="posizione_falda" value="<?=$_POST['posizione_falda']?>" size="18" maxlength="16">

  4. #4
    Dovresti fare così:
    $consumo_euro = $_POST['consumo_euro'];
    $_SESSION['consumo_euro'] = $consumo_euro;
    In pratica, devi prima prende il valore dal post, (sarebe cosa buona aggiungere anche dei controlli per vedere se la variabile è definita con la funzione isset), poi assegnare alla sessione la variabile che desideri.
    Quindi un esempio completo di controllo è:

    $consumo_euro=null;
    if(isset($_POST['consumo_euro']))
    $consumo_euro = $_POST['consumo_euro'];
    $_SESSION['consumo_euro'] = $consumo_euro;
    }

    In questo modo valorizzi la sessione solo se la variabile è valorizzata mediante il POST.

    N.B. Tu hai utilizzato la funzione session_register(); e andava bene, però io preferisco utilizzare l'assegnazione diretta.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Scusa un'ultima cosa, se l'utente arriva alla terza pagina e poi lascia la schermata ferma per un certo periodo di tempo e poi ritorna davanti al computer per continuare a compilare il form, tutti i dati inseriti fino a quel momento vengono azzerati, è come se tutti i dati in sessione vengono cancellati.
    C'è un modo per mantenere sempre la sessione attiva?

  7. #7
    Ciò dovrebbe dipendere dal server, io non ho mai avuto questo problema, ma la soluzione credo ci sia, prova a vedere quì:
    http://forum.html.it/forum/showthread/t-1136436.html
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    grazie ancora

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.