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

    Logout ed eliminazione variabili di sessione

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

    salve a tutti per proteggere alcune pagine utilizzo in testa alla pagina il seguente codice

    if ( !isset($_SESSION['id']) || !isset($_SESSION['denominazione']) ){
    header("Location: /login.php");
    exit;
    }
    else {
    codice della pagina
    }

    la cosa funziona piuttosto bene...
    ora però volevo fare la pagina logout ho provato a creare una pagina di questo tipo

    <? ob_start();
    $_SESSION=array();
    header("Location: /index.php");
    exit;
    ?>

    e sembra andare perchè in effetti mi fa il redirect alla index della root
    però se poi vado nella barra degli indirizzi e digito il link di una delle pagine che utilizzano il sistema di protezione che vi ho mostrato all'inizio accedo come se fossi loggato come posso sistemare questa pagina di logout ?

  2. #2
    Utilizza questo codice:

    Codice PHP:
    <?php
    session_start
    ();

    $_SESSION = array();

    session_destroy();

    if (isset(
    $_COOKIE[session_name()])) {
       
    setcookie(session_name(), ''time()-42000'/');
    }

    session_write_close();

    header("Location: /index.php"); // utilizza l'URL completo per conformità all'RFC.

    exit();
    ?>

  3. #3
    Anch'io ho un problema simile, perché quando vado a fare il logout è vero che la sessione mi si distrugge, ma io rimango comunque pur sempre loggato. Ora mi spiego meglio: nell'index ho messo questo testo:

    Codice PHP:
    <? if (!$idpower
            {
            
    ?> <font color="#FFFFFF" size="1">[b]Registrati adesso[/b]</font> <?
            
    }
        else
            {
            
    ?> <font color="#FFFFFF" size="1">[b]Ciao <?php echo $_SESSION['user'?>[/b]</font>
            <?
            
    }
            
    ?>
    e devo dire che SESSION['user'] scompare, ma viene comunque la scritta "ciao", come per dire che idpower rimane inalterata da prima del logout. Ora, io ho usato il codice di logout suggerito in questo topic, mentre la variabile idpower viene definita nella pagina login.php che vi riporto:

    Codice PHP:
    <?php
    session_start
    ();
    if (
    $_SESSION['mod'] == 'attivo') {
        include(
    "db.utenti.inc.php");
        
    mysql_connect("$db_host","$db_user","$db_password") or die(mysql_error());
        
    mysql_select_db("$db_name") or die(mysql_error());
        
        
    //Prendiamo i dati dell'username associata, grazie alla sessione passata da index.php
        
    $query "SELECT id_utente, power FROM utenti WHERE username = '$_SESSION[user]'";
        
    $risultato mysql_query($query) or die(mysql_error());
        
    $loggin mysql_fetch_array($risultatoMYSQL_ASSOC);
        include(
    'session/db_session_class.php');
        
        
    // selezione del Database
        
    mysql_select_db($db_name) or die(mysql_error());

        
    // Istanziamo l'oggetto
        
    $my_session = new my_session($session_time$session_gc_time);
        
        
    // Avviamo la sessione inviando il cookie al client
        
    $my_session->my_session_start();
        
        
    // Richiamiamo la procedura di garbage collection
        
    $my_session->my_session_gc();
        
        
    // Registriamo due variabili
        
    $my_session->my_session_register('id_loggin'"$loggin[id_utente]"); 
        
        
    //questo non da il nick, ma da l'ID di registrazione
        
    $my_session->my_session_register('ip'"$remote_addr");
        
    $my_session->my_session_register('idpower'"$loggin[power]");
        
        
    //Da il livello della persona
        
    print '<meta http-equiv="Refresh" content="1; URL=index.php">';

    else print 
    '<meta http-equiv="Refresh" content="1; URL=index.php">';
    ?>
    Qualcuno mi può aiutare?

  4. #4
    up!

    Dai, ragazzi, un suggerimento?

  5. #5
    Ancora un up!

  6. #6
    Ma non è meglio inserire:
    Codice PHP:
    if (!$_SESSION["idpower"]) 
    invece che:
    Codice PHP:
    if (!$idpower

  7. #7
    Sì, in effetti, mettendo come dici tu riesco a fare il logout. Peccato che poi non mi riesca più di fare il login...

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.