Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Le variabili di sessione

    Ciao a tutti
    non capisco una cosa sulle sessioni

    Se ho una variabile $id salvata in $_SESSION['id'] e la voglio usare devo richiederla con $id=$_SESSION['id']:
    eppure se non lo faccio $id è settato lo stesso
    Perchè?
    Grazie

  2. #2
    meglio usare $id = session_id()

  3. #3
    Originariamente inviato da Emulman
    meglio usare $id = session_id()
    prego?

    non capisco.......
    Io non parlo del'id di sessione MA del id dell'utente che ho messo nella variabile di sessione id e che mi ritrovo visibile nella pagina amche senza richiederlo con $id=$_SESSION['id']; e non mi spiegavo il perchè

  4. #4
    Originariamente inviato da Emulman
    meglio usare $id = session_id()
    ha travisato credo..dimentica....


    allora... rapidamente

    $_SESSION['nome'] = 'pincopalla';

    assegni all'array $_SESSION la coppia (kiave/ valore ) 'nome' => 'pincopalla'

    come un qualsiasi array insomma

    se hai fatto le cose per bene nelle esecuzioni successive avrai ancora
    $_SESSION['nome'] settato al valore ke gli hai dato

    e puoi usarlo come vuoi, E' UN NORMALE ARRAY ( l'unica particolarita' e' ke e' visibile in qualsiasi punto dello script ( variabile superglobale ) )

    ora te dici ke ti trovi una variabile $nome ( anzi era $id nel tuo caso ) settata...
    questo e' dovuto ad una fastidiosa impostazione del php ke spesso viene lasciata attiva per garantire retrocompatibilita' con vekki script ( una decisone ke "dispezzo" ma nn e' questo il posto per discuterne )

    l'impostazione e' register_globals e se attiva crea ( secondo una precedenza devinita sempre nel php.ini ) una variabile per ogni campo degli array di sessione , post, get e cookie

    attento ke questo potrebbe portare seri problemi di sicurezza nel tuo sito
    e' meglio prevenire che curare quindi INIZIALIZZA SEMPRE LE VARIABILI CHE USI
    es: se sai ke userai una variabie $nome all'inizio settala $nome = null;
    cosi sei sicuro ke nn contiene dati imprevisti

  5. #5
    Codice PHP:

    if (ini_get('register_globals'))
    {
        
    //echo 'rimuovo register_globals
    ';
        $array = array('
    _REQUEST', '_FILES');
        foreach ($array as $value)
        {
          if(isset($GLOBALS[$value]))
          {
            foreach ($GLOBALS[$value] as $key => $var)
            {
                if (isset($GLOBALS[$key]) && $var === $GLOBALS[$key])
                {
                    //echo '
    found '.$key.' '.$var.' in $'.$value.'
    ';                   
                    unset($GLOBALS[$key]);
                }
            }
             }
        }
        //echo '
    rimosse register_globals
    ';

    se inserisci questo all'inizio degli script simuli register_globals = off

  6. #6
    Originariamente inviato da _AnDrEa_1483
    attento ke questo potrebbe portare seri problemi di sicurezza nel tuo sito
    e' meglio prevenire che curare quindi INIZIALIZZA SEMPRE LE VARIABILI CHE USI
    es: se sai ke userai una variabie $nome all'inizio settala $nome = null;
    cosi sei sicuro ke nn contiene dati imprevisti
    Adesso è chiaro grazie

    In una pagina PHPio settavo:
    $_SESSION['nome']="Paolo";

    poi cambiavo pagina e andavo in una pagina in cui mi serviva $nome e me la trovavo già settata con valore paolo senza che la caricassi con
    $nome=$_SESSION['nome'];

    Era inspiegabile

    Nel file di inizializzazione inizializzo già infatti alcune variabili di sessione (non tutte) con valori null e da oggi lo farò con tutte.

    ancora grazie

    PS
    Se c'è da sapere qualche cos'altro..... volentieri

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 © 2024 vBulletin Solutions, Inc. All rights reserved.