Visualizzazione risultati 1 fino 7 di 7

Discussione: SESSIONI incancellabili

  1. #1
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito SESSIONI incancellabili

    Codice:
    (home.php)
    
    <?
    session_start();
    
    if (!empty($_GET['logout'])){
    if ($_GET['logout']=="si"){
    $_SESSION=array();
    session_destroy();
    ?>
    <script language="Javascript">
    	location.href="home2.php";
    </script>
    <?
    }
    }
    
    else{
    ....
    ...
    }
    Queste righe di codice dovrebbero farmi uscire dall'area privata e tornare a quella pubblica (home2.php). Il problema è che torno all'area pubblica, ma se tento di rientrare in una pagina privata, riesco a farlo anche senza il login. Mi spiego meglio: ho creato un collegamento "ESCI" del tipo "home.php?logout=si" e sarebbe la pagina privata col codice che sta sopra. Così facendo dovrebbe eliminare il file di SESSIONE e l'array corrispondente, giusto?! Così non è perchè se poi dopo uscito provo ad entrare nella pagina home.php dove ci sono altre righe di codice del tipo
    Codice:
    if ($_SESSION['stato']=="login")
    {
    ...
    ...
    }
    riesco ad entrare. In pratica il file di SESSIONE e l'array non vengono cancellati. Perchè tutto questo?
    e vi dirò di più, in locale funziona pure, il problema sorge in rete...aiutatemi!!!
    Chi troppo vuole....vuole LionAlex...

  2. #2
    Guest

    Predefinito

    Il primo e l'unico consiglio che posso darti è controllare se le impostazioni di PHP di Altervista e quelle in locale per quel che riguarda le sessioni sono uguali ( tramite l'istruzione phpinfo() ).

  3. #3
    Guest

    Predefinito

    propongo una via alternativa. Anzichè annullare la sessione perchè non riscrivi quella stessa variabile con un contenuto diverso a seconda dello stato in cui si trova l'utente? Esempio: l'utente si scollega? Imposti $_SESSION['stato']='logout' e il gioco è fatto :grin:

  4. #4
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    così facendo però il file di sessione non viene cancellato e resta a vita nel server, spazio occupato inutilmente...potrebbe comunque essere una soluzione.
    Chi troppo vuole....vuole LionAlex...

  5. #5
    Guest

    Predefinito

    Non l'ho mai usata, ma se vuoi limitare nel tempo la durata di una sessione puoi usare la funzione
    session_cache_expire( [durata in minuti] )

    In ogni caso, anche se non la imposti la durata massima della sessione è di 180 minuti. Lo puoi verificare con il codice:
    Codice:
    <?php
    $temp=session_cache_expire();
    print $temp;
    ?>
    :grin:

  6. #6
    Guest

    Predefinito Accorcia il codice in questo modo

    <?php
    session_start();
    if ($_SESSION['logout] != si)
    header('Location: pagina a cui vuoi fare il collegamento);

    ?>

    A posto di tutto quel codice prova ad usare questo. Fammi sapere se funziona. Non dovrebbe esserci bisogno di fare il destroy

  7. #7
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    come passi gli id di sessione?

    tramite un cookie?

    resetti anche quello dopo il logout?

    dal manuale php:

    session_destroy() distrugge tutti i dati associati alla sessione corrente. Non desetta nessuna delle variabili globali associate alla sessione o desetta il cookie di sessione.
    OLD
    Ultima modifica di Evcz : 12-09-2004 alle ore 20.38.55
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •