Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema Sessioni

  1. #1

    Problema Sessioni

    Ciao a tutti,
    ho il seguente problema:
    molta gente sul mio sito è venuta a dirmi che improvvisamente si ritrova i privilegi di master o addirittura amministratore e non so dove sbattere la testa per capire dov'è il problema.

    L'unica cosa che posso dire è questa:
    il sistema vede i privilegi di un utente e decide cosa visualizzargli tramite una variabile di sessione chiamata $_SESSION["funzione_tipo"] di tipo numerico (da 1 a 5).
    Questa variabile (insieme alle altre di sessioni) viene inizializzata al login del sito e distrutta al logout. In realtà viene distrutta anche prima di essere creata nel login, nel caso il logout precedente non fosse stato eseguito correttamente.

    Ora: io so che certa gente ha più account sul sito e che vi accede anche contemporaneamente con diversi browser.
    Può questo influire?
    Come funzionano esattamente le sessioni? Sono dati salvati sul server e associati ad un ip e porta dell'applicazione?

    Spero che qualcuno possa aiutarmi e spero di non essere stato troppo vago ^^
    Flash Developer for Rich Media
    PHP, jQuery Developer

  2. #2
    Le sessioni non c'entrano affatto con il server. Le sessioni sono semplicemente delle varuabili temporanee salvate sul browser, che vengono cancellate quando il browser viene chiuso. Quindi è da scartare un problema con il server. E' da scartare anche il broblema dell'apertura di più browser contemporaneamente, infatti ogni browser ha le sue sessioni, le sessioni di un browser non possono interagire con quelle di un altro browser... Deduco, quindi, che il problema sia nel codice: è venuto fuori all'improvviso questo problema o in seguito alla modifica di un codice?
    Credo che sia meglio che posti il codice usato nel login per assegnare il privilegio e il codice che usi per controllare il privilegio nelle varie pagine e visualizzare di conseguenza i vari contenuti.

  3. #3
    Bella domanda il "quando"....
    purtroppo non te lo so dire, è troppo tempo, solo che in questi ultimi giorni si è intensificato.

    Allora pubblico il codice:
    Codice PHP:
        $sql "SELECT ........... ";
        
    $conteggio mysql_query($sql$connessione)or die("[b]conteggio: [/b] ".mysql_error());
        
    $num mysql_num_rows($conteggio);

        
    //Dati di login corretti
        
    if ($num == 1) {
            while(
    $ROW mysql_fetch_array($conteggio)){
                
    //DATI GENERALI DEL PG
                
    $id_u                $ROW["ID_USER"];
                
    $username            $ROW["USERNAME"];
                
    $pwd                $ROW["PASS"];
                
    $url_avatar            $ROW["URLAVATAR"];
                
    $sex                $ROW["SESSO"];
                
    $url_sesso            $ROW["URLSESSO"];
                
    $razza                $ROW["RAZZA"];
                
    $salut                $ROW["SALUTE"];
                
    //DATI SULLA CORPORAZIONE
                
    $corp_tipo            $ROW["CORPORAZIONE_TIPO"];
                
    $corp                $ROW["CORPORAZIONE"];
                
    $car_tipo            $ROW["CARICA_TIPO"];
                
    $car                $ROW["CARICA"];
                
    $import_carica        $ROW['IMPORTANZA_CARICA'];
                
    $simbol                $ROW["SIMBOLO"];
                
    //DATI SULLO STATO
                
    $stato_t            $ROW["STATO_TIPO"];
                
    $stat                $ROW["STATO"];
                
    //DATI SULLA FUNZIONE
                
    $funz_tipo            $ROW["FUNZIONE_TIPO"]; //NUMERO CHE INDICA IL LIVELLO DELL'UTENTE
                
    $funz                $ROW["FUNZIONE"];
                
    //VISIBILITA ONLINE
                
    $visibile             1;
                
    //staff
                
    $admin                 $ROW["STAFF"];
                
                
                
    //*************sessione*****************
                
    session_start();
                
    session_unset();
                
    session_destroy();
                
    session_start();
                
                
    $_SESSION['id_utente']            = $id_u;
                
    $_SESSION['utente']                = $username;
                
    $_SESSION['pass']                = $pwd;
                
    $_SESSION['urlavatar']            = $url_avatar;
                
    $_SESSION['sesso']                = $sex;
                
    $_SESSION['salute']                = $salut;
                
    $_SESSION['race']                = $razza;
                
    $_SESSION['urlsesso']            = $url_sesso;
                
    $_SESSION['corporazione_tipo']    = $corp_tipo;
                
    $_SESSION['corporazione']        = $corp;
                
    $_SESSION['carica_tipo']        = $car_tipo;
                
    $_SESSION['carica']                = $car;
                
    $_SESSION['importanza_carica']    = $import_carica;
                
    $_SESSION['simbolo']            = $simbol;
                
    $_SESSION['stato_tipo']            = $stato_t;
                
    $_SESSION['stato']                = $stat;
                
    $_SESSION['funzione_tipo']        = $funz_tipo//NUMERO CHE INDICA IL LIVELLO DELL'UTENTE
                
    $_SESSION['funzione']            = $funz;
                
    //DATI SUGLI ONLINE
                
    $_SESSION['locazione']            = 'Mappa';
                
    $_SESSION['last']                = 'login.php';
                
    $_SESSION['visibile']            = 1;
                
    //staff
                
    $_SESSION['staff']                 = $admin;
                
    //posta
                
    $_SESSION['avviso_posta']         = false;
                
    //stanze private, soldi scalati
                
    $_SESSION["stanza_scalati"]     = false;
                
    //*************sessione*****************
        
    .
        .
        . 
    grazie ancora in anticipo
    Flash Developer for Rich Media
    PHP, jQuery Developer

  4. #4
    Direi che le sessioni sono usate correttamente: quindi l'errore dovrebbe trovarsi nel modo con ci controlli se l'utente è loggato e il privilegio dell'utente su ogni pagina: puoi postare anche quel codice?

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.