Visualizzazione dei risultati da 1 a 3 su 3

Discussione: sessioni

  1. #1

    sessioni

    scusate ho un problema con le sessioni. ho creato un file php che mi importa funzioni php e js e mi gestisce il login ma quando faccio session_destroy() e premo indietro nel browser mi da la pagina logata con tutti i permessi dell'utente che aveva fatto logout aiutatemi che non ci dormo da una settimana
    NB: molti codici sono ridondanti specialmente quelli che gestiscono cache e sessioni. le ho provate tutte
    <?php
    header ("cache-control: no-cache, must-revalidate");//non va
    header ("pragma: no-cache");
    //QUESTO include DEVE essere inserito qui perchè contiene la session_start();
    include("funzioni.php");
    ?>
    <html>
    <head>
    <title>Esame di web programming del 13 luglio 2005</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta name="Author" content="Giannone Giovanni Emanuele" />
    <script type="text/javascript" language="javascript" src="funzioni.js"></script>
    <link rel="stylesheet" href="style.css" type="text/css">
    </head>
    <body>
    <?php
    $log = new GestoreLogin();//classe che gestisce login e logout
    if (session_is_registered("livello"))//la sessione è aperta e l'utenet ha fatto qualche cosa
    {
    if (isset($_POST["logout"]))
    {
    session_unregister("livello");//elimina la variabile livello
    session_destroy();//distrugge la sessione e le variabili di sessione
    session_unset();//elimino tutte le variabili registrate
    clearstatcache();//elimina la cache
    $log=null;
    header("Location:index.php");//???cosa devo fare!!
    }
    else if (isset($_POST["nuovo_livello"]) && isset ($_POST["nuovo_messaggio"]) ) //crea nuovo messaggio
    $log->salvaNuovo("messaggi.txt",$_POST["nuovo_livello"],$_POST["nuovo_messaggio"]);
    else if (isset($_POST["riga_modificata"]) && isset($_POST["messaggio_modificato"]) && $_SESSION["livello"]==3) //modifica la terza condizione e di "sicurezza"
    $log->salvaModifiche("messaggi.txt",$_POST["riga_modificata"], $_POST["messaggio_modificato"]);
    }
    else if (isset($_POST["login"]) && isset($_POST["password"])) //ho fatto login
    $log->controllo_accesso($_POST["login"],$_POST["password"],"login.txt");
    unset($_POST);//funziona anche senza questo comando ma per sicurezza preferisco eliminare le variabili di POST
    if (session_is_registered("livello"))//ricontrollo se esite la sessione (potrei aver appena fatto logout)
    {
    $log-> disenga_logOut("index.php");//predispongo il logout: questa funzione scrive HTML
    $utente_loggato = new loggato();
    $utente_loggato->carica_Messaggi("messaggi.txt",$_SESSION["livello"]);
    ?>



    <div id="contenitore"></div>

    <script type="text/javascript" language="javascript">
    utente.disegna("contenitore","index.php");
    </script>
    <?php
    }
    else//true==SESSIONE CHIUSA prima apertura della pagina o logout effettuato
    {
    ?>

    <form id="form"method="POST" action="index.php">
    <input type="hidden" id="password" name="password" />
    <input type="hidden" id="login" name="login"/>
    </form>
    <table class="login">
    <tr>
    <td>Login</td>
    <td><input type="text" id="log" onchange="document.getElementById('pass').focus(); "/></td>
    </tr>
    <tr>
    <td>Password</td>
    <td><input type="password" id="pass" onchange="document.getElementById('but').focus();"/></td>
    </tr>
    <tr>
    <td colspan=2><input type="button" id ="but" value="INVIA" onclick="invia('log','login','pass','password','fo rm');" /></td>
    </tr>
    </table>

    <script type="text/javascript" language="javascript">
    document.getElementById('log').focus();
    </script>
    <?php
    }
    ?>
    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    io faccio cosi...
    Codice PHP:
    $_SESSION=array(); // Unsetta l'array sessione
    session_destroy(); // Distrugge la sessione
    session_unset();

    if(IsSet(
    $_COOKIE['TCSESSID'])) //se presente si distrugge il cookie di login automatico 
         
    setcookie("TCSESSID"""time() - 3600);

    header("Location: login.php"); // Redirect verso index.php 
    dove TCSESSID e' il nome della sessione

  3. #3
    grazie ma non funziona. ho provato anche a fare logout cancella coockies di sessione e indietro e continua a tornare con i privilegi di amministratore. io poi i coockies non li uso e non so cosa sia il nome della sessione?? aiuto

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.