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

    Sessioni non si memorizzano

    Ciao, qualcuno mi sa dire come mai non mi persistono le sessioni? Eppure ho aperto la
    session_start(); all'inizio, nelle pagine dove mi servono, cosi:

    codice:
    <?php
    session_start();
    ?>
    Le ho usate 1000 volte adesso non capisco perchè non si memorizzano.
    Inviato un modulo, catturo i valori nelle sessioni per poi ripresentarle in caso di errori.
    Funziona l'applicazione perchè da una pagina all'altra le variabili cmq passano, ma se apro un'altra scheda del browser spariscono. Potete vedere qui

    Grazie. Posto il codice:

    Codice PHP:
    <?php
    session_start
    ();

    //funzioni che mi servono
    include("functions.php");
      
    //_____Variabili da impostare____________________________________
    $arrayType $_POST//dove il modulo invia le variabili
    $nInput count($arrayType); //numero degli elementi da controllare
    //_________________________________________________________


    //***SE IL MODULO E' STATO INVIATO***

    if($_GET or $_POST)
    {

    //***GESTIONE DEGLI ERRORI DEL MODULO***  

    //_____Includo il file con la lista dei parametri che userò per
    //____________generare gli errori sui campi del modulo________
      
                    
    include("inputClass.php");
    //_____________________________________________________________


      
    $p 0// controlla gli errori

      
    for($i=0$i<$nInput$i++)
           
           {  
               
    //metto in sessione i valori del modulo inviato
               
    $_SESSION["$i"]["value"] = $arrayType[$i];  

               
    $ID $i;
               
    $valore $arrayType[$i];

               
    //assegno ad ogni attributo il proprio valore (es. richiesto = SI)
               
    $request $inputClass[$i]["request"];
               
               
    $valueType $inputClass[$i]["valueType"];

               
    $inputType $inputClass[$i]["inputType"];



               
    //se deve essere compilato ed è vuoto
               
    if ($valore == "" and $request == "y")
               {
                     
    //imposto il colore rosso alle celle desiderate
                     
    $_SESSION["$i"]["cella"] = "bgcolor='#ff0000'";

                     
    //imposto il messaggio di errore
                     
    $_SESSION["$i"]["ErrorMessage"] = "Inserire un valore";

                     
    $p 1;  //si è verificato un errore quindi $p = 1                 
                              
               
    }


               
    //se deve essere numerico e non lo è
               
    if($valueType == "numeric")
               {

                 if(!
    getIntValue($valore))
                  {

                     
    //imposto il messaggio di errore
                     
    $_SESSION["$i"]["ErrorMessage"] = "Inserire un numero di telefono";
                     
    $_SESSION["$i"]["cella"] = "bgcolor='#ff0000'";
                     
                     
    $p 1//si è verificato un errore quindi $p = 1 
                  
    }
               }
           }

       if(
    $p == 1//CI SONO ERRORI RIPRESENTO IL FORM
        
    {
          include(
    "form.php");
        }

        
       if(
    $p == 0//NO ERRORI VADO AVANTI

        
    {
            
    //AVANTI ALL'AVVENTURA SENZA PAURA!
        
    }




    //***SE IL MODULO NON E' STATO  INVIATO LO VISUALIZZO*** 


    else

    {
      include(
    "form.php");
    }

    ?>
    La pagina del form:
    codice:
    <?php
    session_start();
    
    ?>
    
    <form method="post" action="">
    <table cellpadding="5">
    <tr>
     <td align="right" <?php echo $_SESSION["0"]["cella"];?>>
      <input type="text" name="0" value="<?php echo $_SESSION["0"]["value"]; ?>">
       <td align="left" <?php echo $_SESSION["0"]["cella"];?>>
       Nome 
        <td>
          <?php echo $_SESSION[0]["ErrorMessage"];?> 
        
    <tr>
     <td align="right" <?php echo $_SESSION["1"]["cella"];?>>
      <input type="text" name="1" value="<?php echo $_SESSION["1"]["value"]; ?>"> 
       <td align="left" <?php echo $_SESSION["1"]["cella"];?>>
       Cognome
        <td>
         <?php echo $_SESSION[1]["ErrorMessage"];?>
    
    <tr>
     <td align="right" <?php echo $_SESSION["2"]["cella"];?>>
      <input type="text" name="2" value="<?php echo $_SESSION["2"]["value"]; ?>"> 
       <td align="left" <?php echo $_SESSION["2"]["cella"];?>>
       Telefono
        <td>
         <?php echo $_SESSION["2"]["ErrorMessage"];?>
    
    
    
       
    
    <tr>
     <td align="right">
      <input type="submit" value="Invia">
      <td>
    
    
    </form>

  2. #2
    Non sono afferratissimo in materia, ma a quanto vedo cerchi di inizializzare di nuovo la sessione in form.php

    codice:
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homepages/29/d346085422/htdocs/SitoHnB1/prove/functions.php:18) in /homepages/29/d346085422/htdocs/SitoHnB1/prove/form.php on line 2
    In 'form_application.php' inizializzi la sessione, e tu fai l'include della pagina del form, che anch'essa cerca di inzializzare la sessione..

    Togli le prime 3 righe da form.php e prova

  3. #3
    Ciao DjRiKyX e grazie per la risposta.
    Hai ragione sul fatto sul doppio inizializzo della sessione, l'ho levato, lo script funge ma comunque non memorizza le sessioni...se torni sulla prima pagina incollando l'url i campi rimangono vuoti, va bene a livello di risultato ma allora non usavo le sessioni

    [edit]
    No sto dicendo un sacco di fesserie...adesso che non si inizializza la session in form.php quando lo visualizzo per la prima volta è ovvio che le sessioni se le è perse. Devo controllare in form.php se esiste la sessione e nel caso non esista crearla
    [/edit]

  4. #4
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, scusami ma se non inserisci nessuna action nella form come speri che ti si memorizzino le sessioni?Se non vuoi creare una seconda pagina di appoggio almeno linkati a te stesso con un action="?"

  5. #5
    Originariamente inviato da jcsnake
    Ciao, scusami ma se non inserisci nessuna action nella form come speri che ti si memorizzino le sessioni?Se non vuoi creare una seconda pagina di appoggio almeno linkati a te stesso con un action="?"
    Ciao jcsnake
    se non inserisco nessuna action non è uguale a inserire "action=?" ? (è una domanda)
    infatti le variabili si inseriscono nell'array POST o GET che sia

  6. #6
    Originariamente inviato da camionistaxcaso
    [edit]
    No sto dicendo un sacco di fesserie...adesso che non si inizializza la session in form.php quando lo visualizzo per la prima volta è ovvio che le sessioni se le è perse. Devo controllare in form.php se esiste la sessione e nel caso non esista crearla
    [/edit]
    Ma scusa tu la sessione la inizializzi già nello script principale.. Che ti serve inizializzarla anche in form.php?

    form.php a quanto vedo è soltanto una pagina html con il form e con gli echo per visualizzare i dati salvati nelle sessioni..

    Se tu lo includi nello script principale, ovvero form_application.php, non ti serve ne controllare che ci sia ne inizializzarla..

  7. #7
    Originariamente inviato da DjRiKyX
    Ma scusa tu la sessione la inizializzi già nello script principale.. Che ti serve inizializzarla anche in form.php?

    form.php a quanto vedo è soltanto una pagina html con il form e con gli echo per visualizzare i dati salvati nelle sessioni..

    Se tu lo includi nello script principale, ovvero form_application.php, non ti serve ne controllare che ci sia ne inizializzarla..
    Si infatti ho levato session_start() da form.php

    Quesito:

    application_form.php ha la seguente procedura:

    1) il form è stato inviato
    a. recupero variabili o in GET o in POST
    b. inserirle nelle sessioni per ripresentarle
    c. controllo input per creazione messaggi di errore

    2) il form NON è stato inviato
    a. inclusione del form

    se io accedo ad essa e compilo il modulo e lo invio e quindi creo le sessioni...perchè quando torno sulla "pagina principale" nel form non compaiono i valori anche se contengono $_SESSION[0]["value"] ecc ecc?

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.