Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    184

    Sessioni e Mysql.... Passaggio $_SESSION



    Ho creato un set per le sessioni utilizzando il Mysql...
    Il set è questo :

    function s_open() {
    # echo "- Apertura sessione
    ";
    }

    function s_close() {
    return TRUE;
    }

    function s_read($ses_id) {
    $data = "";
    $Rec = SelSql($ExeSes, "Sessioni", "sess_data", "Where session_id= '$ses_id'");
    $data = session_decode($Rec["sess_data"]);
    return $data;
    }

    function s_write($ses_id, $data) {
    $data
    ";
    $ip = getenv("REMOTE_ADDR");
    ECHO $data."
    ";
    $data = session_encode();
    ECHO $data."
    ";
    $query = "Replace into Sessioni (session_id, sess_data, sess_ip)
    values ('$ses_id', '$data', '$ip')";
    mysql_query($query)
    or die ("Ko_s".mysql_error());

    return TRUE;
    }

    function s_destroy($ses_id) {
    # echo "- Distruzione dei dati di sessione
    ";
    Cancella ("Sessioni", "Where session_id = '$ses_id'");
    return TRUE;
    }

    function s_gc($life) {
    # echo "- Pulizia delle sessioni scadute (max:$life secondi)
    ";
    Cancella ("Sessioni", "Where last_agg < ( subdate( now(), INTERVAL $life SECOND) )");
    }

    # dichiaro quali funzioni gestiranno gli eventi delle sessioni
    session_set_save_handler ('s_open','s_close','s_read','s_write','s_destroy' ,'s_gc');

    function VerSes($_SESSION)
    {
    if ($_SESSION)
    {
    $ArrSes["User"] = $_SESSION["User"];
    $ArrSes["Passw"] = $_SESSION["Passw"];
    }

    return $ArrSes;
    }

    function StartPage ($ArrSes)
    {
    // per non avere problemi con i cookies che invierà la sessione
    // evito di mostrare immediatamente l'output dello script
    ob_start();
    // avvio la sessione
    session_start();

    if (is_array($ArrSes))
    {
    echo "Inizializzo Variabili sessione:
    ";
    while (list($chiave, $valore) = each($ArrSes))
    {
    $_SESSION[$chiave] = $valore;
    }
    }
    }

    function EndPage ()
    {
    // adesso posso mostrare l'output dello script
    ob_end_flush();
    }

    function Visual($Msg)
    {
    global $N_Col_Body, $N_color, $N_vlink, $N_alink, $N_link, $OnLoad, $Other, $Title;
    Head($Title);
    Body($N_Col_Body, $N_color, $N_vlink, $N_alink, $N_link, $OnLoad, $Other);

    echo $Msg;

    }


    ------------------------------------------

    Ho una sola pagina che gira ed il codice è il seguente :

    require ("config/connect.inc.php");
    require ("funzioni/centrali.php");
    require ("fun_carrello.php");


    switch ($Cmd)
    {
    case "Accedi" :
    $Msg .= LogIn($_POST, &$ArrSes, &$OnLoad);
    break;

    case "LogOut" :
    $Msg .= LogOut($_SESSION, &$ArrSes, &$OnLoad);
    break;

    case "Aggiungi" :
    AddArt($_POST, $_SESSION, &$ArrSes);
    break;

    case "Elimina" :
    DelArt($_POST, $_SESSION, &$ArrSes);
    break;

    default :
    $ArrSes = VerSes($_SESSION);
    break;

    }


    StartPage($ArrSes);

    if ($Cmd == "LogOut"){
    session_destroy();
    }

    if (!isset($_SESSION["User"]))
    {
    $Msg .= FormLogIn();
    }
    else
    {
    # start_carrello.php, ricordarsi possibilità di logut -> login.php?logout=1
    # -------------------------------------------------------------------------
    $CodCli = $_SESSION["User"];
    if(!$Scelta){ $Scelta = 0; }

    switch ($Scelta)
    {
    case 0:
    $Msg .= MostraHome();
    break;
    case 1:
    $Msg .= MostraCarrello($_SESSION);
    break;
    }
    }

    Visual($Msg);
    EndPage();

    ---------------------------------------------------------
    Quando vado in scelta 1 perde i valori di $_SESSION, perchè ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    184
    UP

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    184

    RISOLTO!!!!

    la funzione session_decode restituisce solo un valore booleano, assegnando i valori decodificati all'array superglobale $_SESSION

    Quindi è un istruzione che deve essere eseguita ma non
    $data = session_decode(Campo)
    bensì
    session_decode(Campo)


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.