Visualizzazione dei risultati da 1 a 5 su 5

Discussione: problema con session

  1. #1

    problema con session

    saluti, vorrei gestire un sistema di login e logout con questo codice

    all'inizio di ogni pagina ho inserito questo codice:
    <?php
    session_start();

    if (isset($_SESSION['utente']) && $_SESSION['utente'] != ""){
    //la variabile esiste allora non succede nulla
    }else{
    // la variabile non esiste allora blocca e reindirizza
    echo "Non sei collegato
    ";
    echo "Per effetturare il Login <a href=\"index.php \">clicca qui</a>";
    die();
    }
    ?>

    però se, dopo il logout, richiamo una pagina qualsiasi che prevede di essere loggato
    questa pagina mi viene mostrata e non dovrebbe


    questo è il codice di logout, brutto e pasticciato lo so ma aggiungo righe cercando la strada...


    <?php
    session_start();
    $_SESSION['utente'] == "";
    $_SESSION = array();
    session_destroy();
    header('Location:index.php');
    exit();
    ?>

    qualche aiuto plis? grazie

    giovanni

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Prima di tutto ti consiglio di cambiare il controllo in questo modo
    Codice PHP:
    if (!isset($_SESSION['utente']) || $_SESSION['utente'] == "" || $_SESSION['utente'] == null) {
        
    // la variabile non esiste allora blocca e reindirizza
        
    echo "Non sei collegato
    "
    ;
        echo 
    "Per effetturare il Login <a href=\"index.php \">clicca qui</a>";
        die();

    Questo per il semplice fatto che avere un solo if invece che un if vuoto seguito da un else è più "performante".

    Il logout fallo semplicemente così

    session_start();
    session_unset();
    session_destroy();

    non serve modificare il valore di $_SESSION['utente'], viene distrutto già col codice qui sopra.

  3. #3
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Il problema relativo alle altre pagine riguarda il fatto che su ogni pagina che deve essere protetta da credenziali di accesso devi fare controllo della sessione...per il logout ti basta anche solamente un session_destroy()


  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Originariamente inviato da Gab-81
    ...per il logout ti basta anche solamente un session_destroy()

    Pensavo anch'io, ma diverse volte mi ha dato noie, ho risolto aggiungendo l'unset.

  5. #5
    Grazie per le risposte, gentilissimi ed utilissimi

    giovanni

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.