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

    Semplice logout da area riservata

    Salve a tutti, avrei bisogno di creare un semplice logout da un'area protetta da password tramite l'uso di sessioni.
    Vi posto il codice per chiarezza:

    Codice PHP:
    <? //pagina che verifica la presenza della sessione aperta

    session_start();
    if (
    $_SESSION['login_admin'] != "ok") {

        
    header("Location: form.htm"); //se la sessione di admin non è stata aperta mi reindirizza automaticamente al form di collegamento
    }

    ?>
    Questa prima parte è una paginetta "inclusione.php" che si occupa di effettuare il controllo sulla sessione.

    Codice PHP:
    <?

    $host
    ="localhost"// Nome dell'host 
    $username="root"// Username Mysql
    $password="root"// Password Mysql 
    $db_name="shopping"// Nome del database 


    // Collegamento al database.
    mysql_connect("$host""$username""$password")or die("Errore di connessione"); 
    mysql_select_db("$db_name")or die("Non posso selezionare il database");


    $user=$_POST['username']; 
    $pass=$_POST['password'];

    $sql="SELECT * FROM amministratori WHERE username='$user' and password='$pass'";
    $result=mysql_query($sql);

    // Mysql_num_row effettua il conteggio dei record
    $count=mysql_num_rows($result);


    if(
    $count==1){



        
    session_start();   //apro la sessione di amministratore
        
    $_SESSION['login_admin'] = "ok";
        
    header("location: ../index.php");
        
    } else { 
    //se il login non va a buon fine torno alla pagina di accesso amministratore

        
    header("Location: ../form.htm");
        echo 
    "Riprova";
    }

    ?>
    Questa pagina "controlla.php" si occupa di gestire la session_start().

    Codice PHP:
    <a href="<? 

    if($_SESSION['login_admin'] =='ok')
    {
    session_unset($_SESSION['login_admin'] );

    }
    else
    {
    echo
    'Non sei loggato';
    }


    ?>">Logout</a>
    Questo invece il codice che ho provato ad implementare in index.php per il logout...solo che appena cambio pagina il session_unset viene chiamato e dismette la sessione...senza che io clicchi su logout.
    Qualche idea su come fare?

    Grazie mille!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    113
    crea un file chiamalo logout.php e mettici

    Codice PHP:
    <?php 
     session_start
    ();
     
    session_destroy();
     
    header("Location:mettici la destinazione dopo aver effettuato il logout"); 
    ?>
    nella index includi invece
    logout

  3. #3
    Beh grazie per la risposta, però c'è un problema.
    Il session_destroy distrugge tutte le sessioni attive, tra cui quella del carrello...quella invece dovrebbe comunque restare attiva.
    Nel mio sito in tutto ho 3 sessioni.
    login_admin, login_utente e carrello...
    Dovrei stoppare solo la prima...

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Originariamente inviato da guinness86
    Beh grazie per la risposta, però c'è un problema.
    Il session_destroy distrugge tutte le sessioni attive, tra cui quella del carrello...quella invece dovrebbe comunque restare attiva.
    Nel mio sito in tutto ho 3 sessioni.
    login_admin, login_utente e carrello...
    Dovrei stoppare solo la prima...


    in che senso? come fai ad avere 3 sessioni?
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  5. #5
    Originariamente inviato da las


    in che senso? come fai ad avere 3 sessioni?
    Ci sono riuscito, bastava semplicemente scrivere nella pagina logout.php

    Codice PHP:
    <?php  
     session_start
    (); 
     unset(
    $_SESSION['login_admin']); 
     
    header("Location: form.htm");  
    ?>
    Quindi usare unset() piuttosto che session_destroy();


    Grazie mille per l'assistenza!

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.