Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500

    Strano comportamento sessioni

    Salve ragazzi, oggi ho notato uno strano comportamento delle sessioni, di seguito vi espongo il problema.

    dopo aver effettuato il login do un valore alla sessione $_SESSION['login'] e faccio un header in un'altra pagina.

    In quella pagina controllo che il valore della sessione ci sia altrimenti lo rimando al login. Questa pagina funziona in modo corretto, entra e il valore della sessione è corretto. Appena cambio pagina il valore della sessione scompare, come mai?

  2. #2
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Posta un po' di codice
    A volte la soluzione a un problema è sempre la più semplice...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Sinceramente non saprei cosa postarti, è per quello che non ho postato niente.

    Cosa devo darti?

  4. #4
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Posta il codice della seconda pagina, dove la session è ancora intatta.
    A volte la soluzione a un problema è sempre la più semplice...

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Se effettua correttamente il login setta la sessione:

    codice:
    $_SESSION['login_done'] = '1';
    e nello stesso login inizialmente controlla che sia stato già fatto il login.

    codice:
    if(isset($_SESSION['login_done'])){
    	header("Location: dashboard.php");
    	exit;
    };
    nella seconda pagina funziona, ma quando agggiorno è come se la sessione scompare e c'è questo controllo.

    codice:
    if(!isset($_SESSION['login_done']) || (isset($_SESSION['login_done']) && $_SESSION['login_done']!= KEY)){
    	unset($_SESSION['login_done']);
    	unset($_SESSION['username_logged']);
    	
    	header("Location: login.php");
    	exit;
    }
    Cosa c'è di sbagliato?

  6. #6
    Nell'ultimo codice c'è un errore nella definizione delle condizioni.
    l'if così come lo avevi scritto risulta sempre vero.

    utilizzi una costante KEY è definita?


    Codice PHP:
    /*sicuro che KEY è definita?*/
    if(!defined('KEY')){
    exit(
    'costante nn definita... forse manca un include?');
    }

    if( 
          !isset(
    $_SESSION['login_done']) || 
          ( isset(
    $_SESSION['login_done']) && $_SESSION['login_done']!= KEY )
    ){
        unset(
    $_SESSION['login_done']);
        unset(
    $_SESSION['username_logged']);
        
        
    header("Location: login.php");
        exit;

    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    key è sempre definito. salvato nel config.

  8. #8
    e con la modifica all'if che ti ho fatto dovrebbe funzionare.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Quale modifica scusa?
    Grazie per l'attenzione!

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.