Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2022
    Messaggi
    17

    passaggio di una sessione da un file ad un altro

    Ciao a tutti mi sto approcciando da poco a php e sono davanti al seguente esercizio:
    - creare nel file index.php una variabile di sessione "pagina" con valore 1
    - creare una pagina prova.php che controlla se la variabile di sessione è stata creata e contiene un valore e restituisce in output la stringa:
    "variabile di sessione non settata" se la variabile non è settata
    "la variabile di sessione ……. vale ……." se la variabile è settata.
    Al posto dei puntini ci sarà il nome ed il valore della variabile
    ho abbozzato questo programma ma qualcosa non va....potreste aiutarmi?

    //index.php
    session_start();
    $_SESSION['pagina']=1;
    session_destroy();

    //prova.php
    include './index.php';
    session_start();
    $var=$_SESSION['pagina'];
    if(empty($var)){
    echo 'variabile di sessione non settata';
    }else{
    echo 'la variabile di sessione pagina vale '.$var;
    }

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Non devi usare session_destroy()
    Tale funzione, come dice il nome, distrugge la sessione e perdi tutto ciò che hai impostato, quindi prova.php non ha nessuna sessione esistente da aggangiare e non troverà mai la variabile impostata.
    session_destroy() va usata solo se è necessario distruggere la sessione in quel punto, altrimenti lascia che sia il server a gestirla, tanto dopo un tot di inattività (anche impostabile) viene automaticamente distrutta.

    Se una variabile è ipostata si verifica con isset(), empty() ti dice "false" sia se non esiste, sia se non è vuota, quindi non hai una risposta certa a ciò che ti serve

    se
    empty($var)
    ti dice false, non sei sicuro che non sia impostata, magari è impostata ed ha un valore.

    Altra cosa, non hai bisogno di
    $var = $_SESSION['pagina'];
    puoi usare direttamente $_SESSION['pagina'], il che ti fa risparmiare una variabile.

    In pagina.php non devi includere index.php, non ha senso. Suppongo tu lo stia facendo per la sessione, ma non serve, pagina.php aggancerà la sessione esistente se non la distruggi prima di arrivarci.

    Quindi potresti usare questo codice:
    Codice PHP:
    //index.php
    session_start();
    $_SESSION['pagina'] = 1
    Codice PHP:
    //prova.php
    session_start();

    if( isset(
    $_SESSION['pagina']) )
    {
        echo 
    'la variabile di sessione pagina vale ' $_SESSION['pagina'];
    }
    else
    {
        echo 
    'variabile di sessione non settata';

    Edit: avevo messo le istruzioni nell'if/else in ordine errato.
    Ultima modifica di Alhazred; 30-12-2022 a 15:53

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2022
    Messaggi
    17
    ho copiato e incollato il codice che mi hai mandato e tolto il destroy ma non esce nulla...

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Ho scritto il codice avendo impostato il layout giapponese sulla tastiera, ci sono caratteri codificati in modo non corretto, riprova ora

    Codice PHP:
    // index.php
    session_start();
    $_SESSION['pagina'] = 1
    Codice PHP:
    // prova.php
    session_start();

    if( isset(
    $_SESSION['pagina']) )
    {
        echo 
    'la variabile di sessione pagina vale ' $_SESSION['pagina'];
    }
    else
    {
        echo 
    'variabile di sessione non settata';

    Dovesse continuare a non funzionare, prova a riscrivere a mano il codice.

Tag per questa discussione

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.