Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Sessioni e oggetti

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    3

    Sessioni e oggetti

    Salve a tutti,
    ho il seguente problema, chi mi può aiutare?

    Vorrei in 4 fasi inserire un progetto in un db.
    Per ogni fase lo script richiama la stessa pagina(pagina.php)
    e ognuna si differenzia dall'altra attraverso l'utilizzo
    della varibile step passata attraverso GET

    La soluzione da me scelta è stata quella di creare un oggetto
    per ogni progetto. La classe dell'oggetto è del tipo:
    Class Progetto {
    var $nome;
    var $titolo;
    var ...
    }

    La defiinizione della classe è all'inteno del file classe.inc
    incluso all'inizio di pagina.php e successivamente richiamo la funziona session_start() (prima di qualsiasi tag html) in modo tale da avviare/richiamare la sessione(utilizzo i cookie per propagare il session id).


    la funzione inserisci all'interno di pagina.php è del tipo:

    function inserisci() {
    // Controllo se esiste e se valido il valore di $step
    if ($_GET["step"] == 0) {
    $progetto = new Progetto();
    $_SESSION['progetto'] = $progetto;
    echo "<form ... method=post action=progetti.php?step=1>
    <input ... name=nome>
    .....
    </form>";
    }
    elseif ($_GET["step"] == 1) {
    $progetto = $_SESSION['progetto'];
    $progetto->nome = $_POST["nome"];
    echo $progetto->nome;
    echo "<form ... method=post action=progetti.php?step=2>
    <input ... name=titolo>
    .....
    </form>";
    }
    elseif ($_GET["step"] == 2) {
    $progetto = $_SESSION['progetto'];
    $progetto->titolo = $_POST["titolo"];
    echo $progetto->nome;

    ....
    e così via



    Qual è il PROBLEMA(lo scrivo in maiusciolo per motivi di leggibilità):
    Mentre il primo "echo $progetto->nome;" ovviamente funziona
    il secondo no, come se il valore della varibile(oggetto) non venisse conservata.

    Spero di essere stato chiaro.
    Saluti a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    3
    La soluzione era banalissima, scusate per il post.
    Bisognava:
    (1) riaggiornare l'oggetto salvato in sessione:
    dopo aver aggiornato i campi di $progetto bisognava fare un bel $_SESSION['progetto'] = $progetto;
    (2) oppure passare attraverso argomenti l'oggetto progetto:
    $progetto = &$_SESSION['progetto'];

    E il tutto funziona come si deve!!!

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.