Visualizzazione risultati 1 fino 16 di 16

Discussione: Login che mi slogga dopo 15 minuti

  1. #1
    Guest

    Predefinito Login che mi slogga dopo 15 minuti

    nuovo problema.
    questo script è incluso in OGNI pagina che voglio tener protetta.
    un utente del sito sostiene che dopo circa 15 minuti viene sloggato e deve riloggare.

    come mai, dove toppo?
    Codice PHP:
    <?php
    session_start
    ();


    if (!isset(
    $_SESSION['username']) && !isset($_SESSION['password'])) {
    $loggato = 0; //NON loggato
    #return;
    }else {
    $loggato = 1; //LOGGATO!
    }


    if(
    $_COOKIE['autolog'] == 'loggato'){
    $_SESSION['username'] = $_COOKIE['user'];
    $_SESSION['password'] = $_COOKIE['pw'];
    $loggato = 1;
    //rinfresca cookies
    $usern = $_SESSION['username'];
    $passw = $_SESSION['password'];
    setcookie('autolog','loggato',time()+864000);
    setcookie('user',$usern,time()+864000);
    setcookie('pw',$passw,time()+864000);
    }
    ?>
    grazie.

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Così a occhio da nessuna parte visto che l'autologin l'avevi messo a 10 giorni. Che browser usa questo utente? E capitato solo a lui?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    potrebbe dipendere dai cookie? lui magari li ha disattivati e la sessione scade prima del previsto, secondo parametri preimpostati da IE o da FF?
    (li usa entrambi)

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da lsdforum Visualizza messaggio
    potrebbe dipendere dai cookie? lui magari li ha disattivati e la sessione scade prima del previsto, secondo parametri preimpostati da IE o da FF?
    (li usa entrambi)
    Se avesse disattivato completamente i cookie dovrebbe trovarsi sloggato già alla seconda pagina che visita dopo il login. Potrebbe essere un'impostazione, ma finché non abbiamo qualche dato in più possiamo solo fare delle ipotesi molto vaghe.

    Però se capita solo a lui direi che ci sono buone possibiltà che il problema dipenda dalle sue impostazioni.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Se avesse disattivato completamente i cookie dovrebbe trovarsi sloggato già alla seconda pagina che visita dopo il login. Potrebbe essere un'impostazione, ma finché non abbiamo qualche dato in più possiamo solo fare delle ipotesi molto vaghe.

    Però se capita solo a lui direi che ci sono buone possibiltà che il problema dipenda dalle sue impostazioni.
    no capita anche a me :(
    se rimango inattivo per x tempo mi slogga...

  6. #6
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Come prima cosa prova a verificare la situazione dei cookies: che esistano e che sopravvivano per il tempo che avevi impostato. Altrimenti vediamo come procedere.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Come prima cosa prova a verificare la situazione dei cookies: che esistano e che sopravvivano per il tempo che avevi impostato. Altrimenti vediamo come procedere.
    come posso procedere per verificare la durata dei cookie?

    grazie

  8. #8
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Se usi Firefox devi andare su Modifica > Preferenze > Privacy > Mostra cookies, in Explorer è qualcosa di analogo.

    A quel punto trovi il tuo cookie e verifichi i dettagli. Cerca bene, ma se non lo trovi vuol dire che è già stato cancellato.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Se usi Firefox devi andare su Modifica > Preferenze > Privacy > Mostra cookies, in Explorer è qualcosa di analogo.

    A quel punto trovi il tuo cookie e verifichi i dettagli. Cerca bene, ma se non lo trovi vuol dire che è già stato cancellato.
    vero.
    ho controllato.

    edit:

    ora i cookie vengono creati. ma la pagina che dovrebbe controllare l'esistenza dei cookie non funziona.
    login.php
    Codice PHP:
    <?php
    if(!$_POST['username'] | !$_POST['password']){
    echo
    '<h1 align=center >:: Errore ::</h1>Devi inserire tutti i campi<br>';
    echo
    "<a href=javascript:history.back()>Indietro</a>";
    exit;
    }

    $usern = $_POST['username'];

    $query = "SELECT * FROM utenti WHERE username='$usern'";
    $check = mysql_query($query);
    if(!
    $check){
    die(
    mysql_error());
    }
    $row = mysql_fetch_array($check);
    if(
    $check && mysql_num_rows($check)<=0){
    die(
    "<div align=center><h1>&nbsp;&nbsp;Errore&nbsp;&nbsp;</h1>Non risulti registrato. <br>Torna <a href=javascript:history.back()>Indietro</a> <br>oppure <a href='../reg.php'> Registrati</a>.</div>");
    }

    $passw = md5($_POST['password']);
    if(
    $passw != $row['password']){
    die(
    '<div align=center><h1>&nbsp;&nbsp;Errore&nbsp;&nbsp;</h1>Password inserita <b>NON</b> corretta!. Torna <a href=javascript:history.back()>Indietro</a></div>');
    }
    else{
    ////header("Refresh: 3; URL=index.php");
    $_SESSION['username'] = $usern;
    $_SESSION['password'] = $passw;
    if (isset(
    $_POST['autolog'])){
    setcookie('autolog','si',time()+864000);
    setcookie('user',$usern,time()+864000);
    setcookie('pw',$passw,time()+864000);
    }
    else{
    setcookie('user',$usern,time()+3600);
    setcookie('pw',$passw,time()+3600);
    }


    echo
    "<div align=center><h1>&nbsp;&nbsp;Bentornato $usern&nbsp;&nbsp;</h1>Login effettuato con successo!<br><img src='../img/home48.png'><br><a href='../index.php'> Clicca qui per tornare alla home page</a>.</div>";

    }
    ?>
    ogni pagina include lo script check_login.php:
    Codice PHP:
    <?php
    session_start
    ();

    if (isset(
    $_COOKIE["user"]) && isset($_COOKIE["pw"])){
    echo
    "U:",$_COOKIE["user"] , $_COOKIE["pw"] ;
    if (!isset(
    $_SESSION['username']) && !isset($_SESSION['password'])) {
    $loggato = 0; //NON loggato
    #return;
    }
    else{
    $loggato = 1; //LOGGATO!
    }
    }


    if(
    $_COOKIE['autolog'] == 'si'){
    $_SESSION['username'] = $_COOKIE['user'];
    $_SESSION['password'] = $_COOKIE['pw'];
    $loggato = 1;
    //rinfresca cookies
    $usern = $_SESSION['username'];
    $passw = $_SESSION['password'];
    setcookie('autolog','loggato',time()+864000);
    setcookie('user',$usern,time()+864000);
    setcookie('pw',$passw,time()+864000);
    }
    ?>
    ma non vengnon letti e non si logga mai...
    Ultima modifica di lsdforum : 17-03-2008 alle ore 15.08.06

  10. #10
    Ospite Guest

    Predefinito

    solo una domanda, ma per vedere se l'utente è loggato usi i cookie o le sessioni ???

  11. #11
    Guest

    Predefinito

    se uso il check sul cookie come si vede nella prima riga del codice postato non funziona, non li individua anche se ESISTONO.
    isset() non sembra fungere.
    allora per farlo funzionare ho tolto la prima riga e faccio solo il check sulla sessione.
    il check per l'autologin invece funziona :D

  12. #12
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Per cui in qualche modo hai risolto?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  13. #13
    Guest

    Predefinito

    no :(
    perchè quello script non è fatto bene.
    ma ho visto che un primo errore si genera in fase di validazione dei cookie.
    non capisco perchè quegli isset() non reagiscono. i cookie ci sono ed hanno un valore, ma isset() non da i risultati attesi.

    lo script check_login è INCLUSO in ogni pagina del sito, magari la filosofia è sbagliata?

    EDIT: mi sono accorto che inserendo la stampa dei cookie, questi non compaiono neppure al successo del login.
    se però refresho la pagina almeno li dentro compaiono.
    ma poi la stessa stampa, che so, nell'index, non li visualizza di nuovo.
    tutto ciò nonostante i cookie esistano e siano settati col tempo che voglio io.
    Ultima modifica di lsdforum : 18-03-2008 alle ore 16.57.19

  14. #14
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Considera che i cookies sono molto diversi dalla sessione: si comportano come i dati via GET o POST. Per cui se setti i cookie in una pagina te li ritroverai soltanto quando la pagina sarà ricaricata o nella pagina successiva. In ogni caso deve essere fatta una nuova richiesta da parte del browser.

    Nel codice che hai postato hai posizionato la stampa dei cookie dietro a una IF, prova a stampare sempre tutto così:

    Codice PHP:
    print_r($_COOKIES)


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  15. #15
    Guest

    Predefinito

    ma quindi il cookie va propagato?
    ma se viene creato, quello sta su pc client, non dovrebbe essere poi immediato rileggerlo?
    nel senso che, se il cookie è stato creato e sta sul pc, visto che la procedura check_login è chiamata al caricamento di ogni pagina tramite include_once() non dovrebbe rifare il controllo se il cookie esiste?
    PS: anche la prova di un print fuori da ogni if non mostra un cacchio :(

  16. #16
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Quello che volevo dire è che la pagina che viene visualizzata appena hai fatto il login non avrà ancora a disposizione i cookie, ma questi ci saranno solo dalla successiva.

    Però visto così sembra essere tutto corretto, ci deve ancora sfuggire qualcosa... però non saprei cosa.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


Regole di scrittura

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