Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    cookie e PHP per il login

    Salve a tutti,
    Sto cercando di capire un po il funzionamento dei cookie e sopratutto come gestirli in PHP.
    Leggevo un po online e vedevo che esiste la funzione setcookie() per crearlo.

    ad esempio usiamo la funzione
    setcookie("nomecookie","contenutocookie","durataco okie");

    ora la cosa che non capisco è questa...

    Ho letto che per sicurezza non bisogna mai mettere nel cookie valiri fissi dell'utente, tipo l'ID perchè sono facilmente leggibili quindi ci vuole un qualche cosa nel tempo cambi... però come faccio poi a riconoscere il cliente?

    Se ho capito bene se io salvo il cookie sul pc con il valore connesso, il browser capisce all'istante di essere connesso quindi non mi chiede il login, ma come fa a sapere a quale account sono connesso?

    Quindi penso di non aver capito bene come passare il login
    La mia idea era ipoteticamente
    Passo Email, id, utenza o quello che fa al mio caso per identificare l'utente, se devo passare più dati metto un separatore da usare con explode, e a quel punto se esiste il cookie faccio ad ogni apertura della pagina la creazione della Sessione

    Teoricamente sbaglio qualche cosa?

    Altro fattore è la durata... di solito vedo online che tutti mettono nella durata time()+secondi della dura del cookie... In questo modo ho sempre una durata, ma se io non voglio dare una durata? cioè che mi rimane sempre attivo? do una durata enorme?

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, nei cookie non è che esiste il login già fatto! Li usi per memorizzare i dati utili per il login o magari creare un hash di verifica.
    Dalla lettura dei cookie controllo a db che esista quell'utenza e quindi fai in automatico il login.
    Oppure usi solo la sessione. La durata puoi deciderla tu ma comunque sia se l'utente elimina i cookie dal browser con una semplice pulizia potrebbero essere comunque eliminati poco dopo.

  3. #3
    Grazie per la risposta...

    Sisi lo so che il cookie non fa il login in automatico... però la cosa che non capivo io è diciamo che dati devo passare per la sicurezza del sito e dell'utente.

    Ti dico leggendo online ho trovato un articolo-guida che mi diceva che non bisogna mai salvare i dati di login del cliente (esempio ID-email-password) perchè poco sicuro... e a quel punto però non davano un esempio pratico di come fare, o almeno come comportarsi...

    tu mi dici un hash di verifica, come si fa di solito con la password, però per come l'ho sempre usato io l'hash funziona quando io conosco già l'utente esempio:
    io utente alemix faccio il login qua nel forum, allora controllo con l'hash che la password inserita corrisponda all'hash di quella salvata in DB.
    Ma se devo farlo per l'utenza mi toccherebbe fare una select di tutti gli utenti hashati e vedere se corrisponde a quello del cookie (mi pare uno spreco di risorse)

    Per la durata, si lo so che l'utente può cancellarli quando vuole, ma sto vedendo che sempre più siti web hanno l'autologin con durata infinita (o finchè non si cancella il cookie) mi chiedevo per fare una cosa del genere come si fa? tempo fino al bug del 2038?

  4. #4
    PS: Tanto siccome lavoro in locale e per provare un attimo ho creato dei cookie... perfetto funzionano, (passo ID email passwordhash) vengono scritti e l'autologin va!

    ho un problema nel logout, sto aspettando nel frattempo che mi scada il cookie, però mi succede una cosa strana io richiamo una pagine per il logout con un header(location finale per fare in modo che faccia il logout e mi mandi alla pagina fuori dal login.

    Ora se io faccio il logout che ha sempre funzionato con la distruzione della sessione, mi ricarica sempre la home da loggato! provando a togliere il redirect, mi accorgo che il cookie rimane! da quanto ho letto in giro basta solamente settare il valore nullo o un time negativo per cancellarlo, ed invece nulla!

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.