• User Attivo

    Salvare una sessione

    Salve a tutti,
    ho la necessità di salvare in una sessione o in un cookie il valore dell'outpu che l'utente invia. Mi spiego meglio :

    Sto costruendo una specie di cms, e quindi ho avuto l'idea di far cambiare la skin del sito all'utente tramite il suo pannello amministrativo solo se collegato. Fin qui tutto ok, creo un input dove l'utente scriverà il nome della skin e cliccando su invia, si andrà a leggere un'altro file .css.
    Questo anche funziona, la skin viene cambiata, ma come gia detto, devo salvare questo valore in una sessione o in un cookie perchè nel momento in cui cambio sezione e poi ritorno dov'ero tramite link, quest'ultimo perde lo stato di memorizzazione e torna alla skin di default.

    Chi mi illumina ? ho gia provato con il salvataggio di sessioni ma non funzionava, forse avro' sbagliato io qualcosa ?
    il sistema di login è fatto con le sessioni.

    Codice del box input :
    [php]
    // CAMBIA TEMPLATE
    Print "<center>";
    print "<form action="{$_SERVER['PHP_SELF']}" name="cambio-template"method="post">
    Scrivi il Nome del Template :
    <input type="text" name="template1" value="rosa">
    <input type="submit" name="inviatem" value="invia">
    </form></center>";
    // FIN CAMBIA TEMPLATE

    [/php]Codice per cambiare skin
    [php]
    <?php
    if(isset($_POST['inviatem']) And ($_POST['template1']))
    {
    $template = $_POST['inviatem'];
    print "<style type="text/css" media="all">
    @import "rosa.css";
    </style>";
    // SALVO LA SESSSIONE

    }
    Else
    {
        print "<style type=\"text/css\" media=\"all\">
            @import \"global.css\";
        </style>";
    }
    

    ?>
    [/php]


  • ModSenior

    Ciao inforsicurezza,
    Prova cosi:
    [php]
    <?php
    if(isset($_POST['inviatem']) And ($_POST['template1']))
    {
    $skin = 'rosa';
    $_SESSION['skin'] = 'rosa';
    }
    elseif(isset($_SESSION['skin']))
    $skin = $_SESSION['skin'];
    else
    {
    $skin = 'global';
    $_SESSION['skin'] = 'global';
    }
    echo "<style type="text/css" media="all">
    @import "$skin.css";
    </style>";
    ?>
    [/php]


  • User Attivo

    Grazie TheDarkita, non ci avevo pensato al tuo metodo, adesso funziona, lo script riesce a memorizzare lo stato.
    Puoi chiudere il post se vuoi!:)


  • User Attivo

    @infosicurezza said:

    Grazie TheDarkita, non ci avevo pensato al tuo metodo, adesso funziona, lo script riesce a memorizzare lo stato.
    Puoi chiudere il post se vuoi!:)

    Edito il messaggio... il problema non è stato ancora risolto, perchè quando voglio ritornare alla skin di default viene sempre memorizzata quella precedente!

    Avevo pensato distruggere la sessione, [php] session_destory();[/php]
    ma poi l'utente deve rieffettuare il login...


  • ModSenior

    [php]
    <?php
    if(isset($_POST['inviatem']) && $_POST['template1'] == 'rosa')
    {
    $skin = 'rosa';
    $_SESSION['skin'] = 'rosa';
    }
    elseif(isset($_POST['inviatem']) && $_POST['template1'] == 'global')
    {
    $skin = 'global';
    $_SESSION['skin'] = 'global';
    }
    elseif(isset($_SESSION['skin']))
    $skin = $_SESSION['skin'];
    else
    {
    $skin = 'global';
    $_SESSION['skin'] = 'global';
    }
    echo "<style type="text/css" media="all">
    @import "$skin.css";
    </style>";
    ?>
    [/php]


  • User Attivo

    Ok, adesso sembra essere tutto apposto
    Grazie ancora