Ti do un consiglio, fai cosi, tieni la pw protetta, se l'utente fa il recupero password fagli inserire la mail.

Poi fai confronto tra nome utente e mail registrata che sia uguale e in tal caso genera una password casuale che so con un random, poi mettila in una variabile e con quella variabile fai l'update della password dell'utente e sempre quella variabile mandala subito via mail.


Esempio:

Mario fa recupero password
La pagina genera come password: pippo17
Fai l'update della tabella users e metti pippo17 come password (opportunamente criptata) per l'utente Mario
Nella variabile $password_generata_casualmente ci starà quindi pippo17, ora manda una mail a Mario con scritto la nuova password sarà $password_generata_casualmente