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

    [php] problema con le sessioni

    ho un problema con la sessione: non riesco a leggere i parametri.
    in pratica ho due pagine ed entrambe vengono invocate da form.
    la prima pagina deve creare una sessione, salvarci un parametro, mostrare una form e, tramite l'invio della form, passare alla seconda pagina.

    pagina1:
    Codice PHP:
    <?php
        session_start
    ();
    ?>
    <html>
    <head>
    </head>
    <body>
    </body>
    ...
    <?php
    $nome 
    $_POST['nome'];
    if(
    $id!=''){
        
    $_SESSION['nome'] = $nome;
        print 
    "nome: ".$_SESSION['nome'];  //qui lo visualizza correttamente
    }
    else{
        print 
    "errore";
        
    session_destroy();
    }
    ...
    ?>
    </html>
    la seconda pagina deve leggere il parametro memorizzato nella session (oltre che ad usare quelli passati tramite form)
    il problema è che il parametro nella session non viene letto.
    non so se non viene settato o non viene letto, cmq il prblema è che il contenuto della variabile che legge il valore dalla sessione è sempre vuoto.

    Codice PHP:
    <html>
    <head>
    </head>
    <body>
    </body>
    ...
    <?php
    $nome 
    $_SESSION['nome'];
    print 
    "nome: ".$nome;  //qui non stampa mai il contenuto della variabile che risulta vuota
    if($id==''){
        print 
    "errore";
    }
    else{
        
    //qui nn entra mai
    }

    ?>
    ...
    </html>
    perchè fa cosi?
    l'utilizzo della form influisc sui parametri nella sessione?

  2. #2

  3. #3
    Notice: Undefined variable: _SESSION in D:\www\test\2.php on line 27
    la sessione deve essere usata da quelle due pagine piu una terza che per ora non esiste, la linea 27 è:

    Codice PHP:
    $nome $_SESSION['nome']; 

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ti sei scordato di aprire la sessione nel secondo script
    Codice PHP:
    <?php
    session_start
    (); //questo lo hai scordato...
    $nome $_SESSION['nome'];
    print 
    "nome: ".$nome;  //qui non stampa mai il contenuto della variabile che risulta vuota
    if($id==''){

  5. #5
    accidenti, era proprio quello l'errore!
    ultima domanda:
    ma l'istruzione session_start(); deve sempre stare come prima istruzione all'interno del file o la possono mettere in qualsiasi posizione?

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Io la metto prima di ogni altra istruzione, proprio per evitare di scordarla...
    Nel manuale è sicuramente indicato: mi pare che sia meglio metterla prima di mandare output, ma non mi ricordo...

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.