Ti serve una tabella del db dove inserisci (a grandi linee) userid di chi ha richiesto la nuova password una stringa alfanumerica generata casualmente (es aswe32fr3) e la data della richiesta del cambio password, via mail mandi un link del genere

miosito.it/changepw.php?userid=23&str=aswe32fr3

in changepw controlli che quella richiesta esista e che non sia scaduta, se esiste e non è scaduta gli fai cambiare la password