Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    Sistema "ricordami" login

    Salve ragazzi ho appena creato un piccolo sistema di login e volevo aggiungere la funzionalità "ricordami" in modo tale da non inserire sempre le credenziali per effettuare l'accesso all'area privata.
    Per ora nel form ho una checkbox:

    codice:
    <input type="checkbox" value="remember-me"> Remember me
    e vorrei capire nel file "login.php" (cioè dove verifico se le credenziali sono corrette etc.. etc...)
    cosa devo aggiungere per la funzionalità "Remember me".


    Grazie anticipatamente.
    Con i sogni possiamo conoscere il futuro...

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Imposta un cookie senza scadenza o con scadenza molto lontana nel tempo sul browser del richiedente e ogni volta che si accede alla pagina del tuo sito verifichi se il cookie è impostato o no, se è impostato fai risultare l'utente già loggato, altrimenti no.

  3. #3
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Imposta un cookie senza scadenza o con scadenza molto lontana nel tempo sul browser del richiedente e ogni volta che si accede alla pagina del tuo sito verifichi se il cookie è impostato o no, se è impostato fai risultare l'utente già loggato, altrimenti no.
    Grazie per la tempestiva risposta, però una cosa non mi è chiara, non dovrei mettere il controllo nella pagina di login , cioè dove inserisco le credenziali e controllo:

    se il cookie esiste allora vado direttamente nella pagina privata
    altrimenti chiedo di inserire le credenziali.

    poi nella pagina privata verifico se esiste o meno il cookie.

    Inoltre, ovviamente , devo fare in modo che se cancello la cache, dovrà poi richiedermi di ricordare il login
    Con i sogni possiamo conoscere il futuro...

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Il controllo lo metti dove vuoi, ma suppongo che sulla tua home page ci sarà un link o form per il login, ecco anche quello non dovrebbe apparire se il coockie è settato, quindi io il controllo lo farei anche sulla home page.
    Potresti crearti un file che effettua il controllo ed includerlo nelle pagine dove è necessario sapere se uno è loggato o no.

    Lo script dovrà fare quanto segue:
    - verificare se in sessione c'è la variabile che definisce l'utente come loggato (così non devi leggere ogni volta il cookie)
    --- se non esiste tale variabile di sessione controlla se è settato il cookie
    ------ se il cookie è settato imposti la variabile di sessione per far risultare l'utente come registrato
    ------ se il cookie non è settato mostri il login
    --- se la variabile di sessione esiste, allora non fai niente (in realtà questo cotrollo lo puoi omettere, io l'ho scritto solo per far capire la situazione)

  5. #5
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Perfetto, grazie.
    Un'ultima domanda, quando clicco su logout, io faccio un session_destroy() e vado nella pagina di login nella quale ho questo controllo in alto:

    Codice PHP:
    if ( isset($_COOKIE['user_logged']) || isset($_SESSION['logged']) ) {    
    header("location: index.php");    
    exit();

    quando vado nella index.php(pagina privata), ho creato un file che includo in tutte le pagine private che è il seguente:

    Codice PHP:
    session_start();
    if ( !isset(
    $_SESSION['logged']) ){    
    if ( !isset(
    $_COOKIE['user_logged']) ) {       
     
    header("location: login.php");        
     exit();    
    } else {       
     
    $_SESSION['logged']=1;   
     }

    poichè il cookie è settato, lui mi setta nuovamente la variabile $_SESSION['logged'] = 1 e quindi anche se clicco logout, in reatà resta nella index.
    Con i sogni possiamo conoscere il futuro...

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Contestualmente al logout devi anche cancellare il cookie oltre a distruggere la sessione.

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.