Visualizzazione dei risultati da 1 a 2 su 2

Discussione: riconoscere un utente

  1. #1

    riconoscere un utente

    ciao a tutti... ultimamente ho creato un sistema di login per il mio sito attraverso le sessioni... ora però vorrei che il sito mi riconoscesse automaticamente l'utente nel momento in cui accede all'index se ha già effettuato una volta il login; in poche parole fatto il login l'utente nn dovrebbe + farsi lo sbatti di farlo...
    per quel poco che so dovrei usare i cookies ma nn ho la minima idea d come farlo... qualcuno può darmi qualche dritta?

  2. #2
    il concetto è questo:
    se scrivi su un cookie l'id dell'utente nel database... quando verifichi che non è loggato, prima di mostrargli il form di login verifichi se ha il coookie.. se ce l'ha, dall'id lo riconosci senza alcun dubbio...


    e fin qui dovrebbe essere chiaro...

    il problema qual è? che se io utente apro il cookie e ci vedo scritto dentro il mio id.. posso benissimo cambiarlo a caso o mettendo l'id di un altro.. e farmi riconoscere al suo posto... chiaro?

    Per evitare questo potrei mettere sul cookie:

    id|md5

    dove l'md5 è una funzione di hash che data una stringa qualsiasi ne genera una di 32 caratteri... insomma.. difficile da indovinare.. a stringhe simili corrispondono hash diversissimi....
    chiaramente questo non basta ancora.. prchè chiunque è in grado di fare un md5... quindi se io utente con id 6 mi trovo sul cookie l'id 6 e l'md5... posso benissimo metterci l'id 8 e l'md5 dell'id 8....
    e allora che ci metto? devo metterci qualcosa che conosco solo io.. ovvero una password.. in pratica concateno all'id una mia password e poi faccio l'md5... insomma:

    Codice PHP:
     if(isset($_POST['ricorda']))                     {
      
    $md5 md5("{$uid}{$miapwd}");
      
    setcookie('login',"{$uid}|$md5",time()+60*60*24*365);

    Questo codice verifica se è stata spuntata la tipica casellina per il riconoscimento automatico al proprio accesso... in quel caso fa l'md5 come ti ho detto io.. poi setta un cookie chiamato "login", ci scrive la stringa id|md5, e gli da un anno come scadenza

    in fase di login verifichi così:
    Codice PHP:
    //se non c'è una sessione autenticata e c'è il cookie
    if (!isset($_SESSION['uid']) && isset($_COOKIE['login']))
      {
        
    //verifico validità del cookie e allora autentica sessione
        
    list($uid,$md5) = explode(':',$_COOKIE['login']);
        if(
    $md5 != md5("{$uid}{$miapwd}"))
         {
          
    print_message("che stai a fa????");
          exit;
         }
        else 
    //l'utente è correttamente riconosciuto e attivo la sessione senza mostrare il form
     


    spero sia chiaro..


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.