Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Sessioni e date

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555

    Sessioni e date

    Salve.
    Ho una pagina dove ho tre campi : txtYear,txtMonth,txtDay, per anno e mese e giorno. Dopo il submit passo questi valori ad un'altra pagina.

    Nell'altra pagina mi memorizzo il tutto come segue.

    $DataI = $_POST['txtYear'];
    $DataI .= "-" ;
    $DataI .= $_POST['txtMonth'];
    $DataI .= "-";
    $DataI .= $_POST['txtDay'];

    e il risultato è giusto per esempio 2005-06-02

    Ora cerco di memorizzare la data in sessione
    if(isset($DataI)) {$_SESSION['DataI'] = $DataI ; }

    Se stampo $_SESSION['DataI'] mi stampa solo i trattini

    Sto impazzendo, che sbaglio? Le altre variabili di sessione funzionano

  2. #2
    Significa che nel tuo caso specifico non hai valori e quindi trovi solo i trattini....

    fai un echo $DataI
    codice:
    $DataI = "$_POST[txtYear]-$_POST[txtMonth]-$_POST[txtDay]";   
    
    $_SESSION['DataI'] = $DataI ;
    
    echo "$DataI - $_SESSION[DataI}";
    se i dati stampati sono uguali il passaggio e' corretto.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Niente.
    $DataI = $_POST['txtYear'];
    $DataI .= "-" ;
    $DataI .= $_POST['txtMonth'];
    $DataI .= "-";
    $DataI .= $_POST['txtDay'];
    if(isset($DataI)) {$_SESSION['DataI'] = $DataI ; }
    echo $_SESSION['DataI'] ;
    e il risultato è giusto per esempio 2005-06-02

    Tanto che nella select mi mette
    select * from tabella where datainizio = 2005-06-02

    Se riprocesso la pagina con un link
    <a><href "Prova.php?DataInizio = ".$_SESSION['DataI']."></a>

    la select diventa

    select * from tabella where datainizio = --

    Eppure la sessione iniziale registra il valore

  4. #4
    Ma session_start() lo metti?

    Poi e' inutile che vai a verificare se $DataI e' settato quando lo hai appena fatto e valorizzato.

    Evidentemente se riprocessi la pagina $_POST e' vuoto e sovrascrive il $_SESSION di prima.

    Hai qualcosa di procedurale errato. Il controllo se e' settato lo devi fare su $_POST. Poi non si capisce l'uso che fai di $_SESSION.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Post lo utilizzo per ricavare i dati inizialmente nel passaggio da una pagina all'altra, poi lo registro in sessione per tenerlo per poter fare l'aggiornamento della pagina. Almenochè non ci sia un metodo per riprocessare la pagina coi valori passati in automatico, non con f5 perchè mi chiede di riprocessare la pagina (fa la domanda) e per l'utente non va bene.
    Sicuramente sbaglio qualcosa lo so.

    Ciao e grazie

  6. #6
    [supersaibal]Originariamente inviato da michelepi
    Post lo utilizzo per ricavare i dati inizialmente nel passaggio da una pagina all'altra, poi lo registro in sessione per tenerlo per poter fare l'aggiornamento della pagina. Almenochè non ci sia un metodo per riprocessare la pagina coi valori passati in automatico, non con f5 perchè mi chiede di riprocessare la pagina (fa la domanda) e per l'utente non va bene.
    Sicuramente sbaglio qualcosa lo so.

    Ciao e grazie [/supersaibal]
    Se la pagina che vuoi rivedere e' stata composta con dati dinamici e' logico che te lo chieda.
    E non e' neppure detto lo possa poi fare. Dipende dalla cache del tuo browser....
    Comunque in linea di massima fai cosi':
    codice:
    pagina_1 <---  compila il form e vai a pagina 2
    
    pagina_2 <---- session_start() 
                   Se esiste $_SESSION processa $_SESSION 
                   oppure se esiste $_POST processa $_POST
                   altrimenti mancano i dati - exit
                   Poi riversa $_POST in $_SESSION
                   
    pagina_x <---- session_start()    // elimina i dati di sessione
                   $_SESSION = array()
                   session_destroy()
                   exit;
    Questo e' molto approssimativo ma e' la sostanza per preservare i dati in $_SESSION.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Piero sei un grande mi hai dato una dritta ottima, avevi ragione il post va a sovrascrivere il session.

    if($_GET['VarPost'] <> "no"){ //ho inserito questa var per non far riprendere il post
    $DataInizio = $_POST['txtYear'] ;
    $DataInizio .= "-";
    $DataInizio .= $_POST['txtMonth'] ;
    $DataInizio .= "-" ;
    $DataInizio .= $_POST['txtDay'] ;
    }


    $d = " <p align = \"center\"><a href=\"VisualizzaInserimento1.php?VarPost=no&CodGr uInq=$GruppiTot&DataInizio=$DataInizio&DataFine=$D ataFine&CodUteInq=CodUte_Ses&CodGruInq=$GruppoSel& Stato=$Stato\">Aggiorna</a></p> ";

    Queste sessioni le memorizzo dopo un ciclo while
    if (isset($RecCmbGruppoGru)) { $_SESSION['GruppiTot'] = $RecCmbGruppoGru ; }
    if (isset($DataInizio)) { $_SESSION['DataInizio'] = $DataInizio; }
    if (isset($DataFine)) { $_SESSION['DataFine'] = $DataFine ; }
    if (isset($_POST['cmbStato'])) { $_SESSION['Stato'] = $_POST['cmbStato'] ; }
    if (isset($_POST['chkUteSes'])) { $_SESSION['chkUteSes'] = $_POST['chkUteSes'] ; }
    if (isset($_POST['cmbGruppi'])) { $_SESSION['GruppoSel'] = $_POST['cmbGruppi'] ; }
    Grazie

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    scusa se mi permetto, ma concettualmente fai dei giri assurdi.

    Ti arriva in $_POST la data, la metti in sessione per poi richiamare in $_GET la query.

    A parte che è errato mandare in pasto direttamente una query che arrivi da variabili GET, comunque le sessioni non ti servirebbero, perchè basterebbe fare un if sull'esistenza di $_POST...



  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    no no ben vengano le critiche se servono a migliorare.
    Li non c'è tutto il codice, comunque il mio problema nasce dal fatto che un utente fa una ricerca, e il tutto avviene tramite post. Nella pagina dei risultati l'utente può fare delle modifiche, quindi dovevo inserire un pulsante per l'aggiornamento, invece di farlo tornare alla pagina del modulo. Quindi registro in sessione e poi su aggiorna passo le variabili: aggiorna.php?Variabile=$variabile(presa dalla sessione).

    Il get lo inserisco su aggiorna per verificare che non ripassi i valori del post.
    Mi sto incasinando, chissà se è chiaro.

    Però se ci sono passaggi più corretti accetto indicazioni, anzi magari.

    Ciao

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.