Visualizzazione risultati 1 fino 3 di 3

Discussione: Settare una sessione... Cosa non va?

  1. #1
    Guest

    Question Settare una sessione... Cosa non va?

    Ciao a tutti!
    Sono ancora io! (Si nota sempre di più come sono un ignorante...)
    Ho un problema di cui non riesco a venire a capo...
    Io ho una sessione -che chiamo prova- il cui valore è "ciaociao" e viene dettato in una pagina php che chiamo pag1.php.
    Ora, nella pagina "pag2.php" voglio che il valore della sessione divenga "provabella".
    Io uso il seguente codice che non funge ma non riesco a capire il motivo!

    Questa sarebbe la pagina pag1.php, nella quale viene dettato il primo valore alla sessione "prova".
    Codice PHP:
    <?php
    session_start
    (); //Qui "starto" la sessione
    $_SESSION['prova'] = "ciaociao"; //Qui do alla sessione prova il valore ciaociao
    header("location: /altrapagina.php"); //Mentre con questo codice porto l'utente in un'altra pagina del sito
    ?>
    E fino a qua il codice funziona...

    Questa invece è la pagina "pag2.php" che dovrebbe modificare il valore della sessione "prova" in "provabella".
    Io faccio così.
    Codice PHP:
    <?
    session_start
    (); //Qui starto una nuova sessione
    $_SESSION["prova"] = "provabella"; //Qui dico alla sessione "prova" di portare il valore "provabella"
    header("Location: /altrapaagina.php"); //Redirect ad altraapagina.php
    ?>
    Che cosa c'è che non va? A me sembra tutto corretto...
    In una nuova pagina del mio sito, infine, c'è il codice con il quale verifico il cambiamento di sessione... (Che sia sbagliato questo? )

    Codice PHP:
    <?php
    session_start
    (); //Inizio la sessione
    if($_SESSION["prova"] = "prova"){ //Qua chiedo se la sessione prova è uguale a prova
    echo "La tua sessione è prova";
    }
    else {
    //Se invece non è uguale...
    echo 'La tua sessione è provabella';
    }
    ?>
    Il risultato è che mi da sempre "La tua sessione è prova" pur essendo entrato nella pagina che dovrebbe cambiare il valore della sessione.

    Vi ringrazio per le eventuali risposte con un salutone!
    Ciao!

  2. #2
    Guest

    Predefinito

    Non ho ben capito che giro fai ma se richiami pag1.php ti ritrovi ad altrapagina.php e quindi come fai a richiamare il codice di pag2.php o altre visto che non le carichi?

    PS: una precisazione, con session_start() non inizi sempre una nuova sessione, ma solo nel caso non ve ne sia una attiva, nel qual caso viene richiamata quest'ultima. Quindi se non ci sono sessione ne viene creata una nuova, mentre se ce n'è una attiva, viene richiamata quest'ultima.

  3. #3
    Guest

    Predefinito

    Due errori:
    1) sintattico, il simbolo di uguaglianza, per chiedere se una cosa è uguale a un'altra, è ==
    2) avevi deciso in pag1 di dar valore ciaociao alla variabile di sessione, e non prova...
    per cui
    if($_SESSION["prova"] = "prova")
    deve diventare
    if($_SESSION['prova'] == "ciaociao")

    Immagino che il tuo intento sia controllare se altrapagina.php è raggiunta mediante pag1.php o pag2.php... e se è raggiunta direttamente? Ti stampa La tua sessione è provabella, anche se non c'è ancora la variabile di sessione...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •