Ho creato un procedimento di recupero password per gli utenti di un sito.

La meccanica è molto semplice e ho dovuto utilizzare parti di codice da alcuni articoli e post di questo forum.
L'utente inserisce l'indirizzo email con cui si è registrato al sito e gli viene mandata una nuova password.

Tuttavia ovviamente non è il massimo che qualsiasi utente possa
cambiarti la password inserendo solo il tuo indirizzo di posta
Sulla falsa riga di questo forum volevo implementare una costrutto che mandasse una mail "volatile" all'utente
dicendogli che la sua password può essere cambiata semplicemente clikkando su un link aposito entro tot ore dal ricevimento della stessa, altrimenti la sua richiestà verrà ignorata.

Ovviamente non so proprio da che parte iniziare.
Vi va di darmi una mano?

Ecco il codice che ho implementato per la funzione originale (Thx agli autori dei post da cui ho tratto il codice):

Codice PHP:
$ricerca_mail check_mail_lost($pass_lost);
            
$status = ($ricerca_mail === true) ? newpass($pass_lost) : REG_ERRORS;


switch(
$status){
        case 
REG_ERRORS:
          echo 
"$ricerca_mail";
           break;
.... 
Funzioni nelle librerie:

Codice PHP:
function check_mail_lost($pass_lost) {
    global 
$_CONFIG;
      
$pass_lost = isset($pass_lost) ? $pass_lost null;
      
$pass_lost trim($pass_lost);
     if(
$pass_lost == "") {
        return 
"Indirizzo non valido";
                  }
    
$query mysql_query("
    SELECT id
    FROM "
.$_CONFIG['table_utenti']."
    WHERE mail='"
.$pass_lost."'");
    if(
mysql_num_rows($query) == 0) {
        return 
"L'email non risulta tra quelle registrate";
                  }
return 
true;
}

function 
newpass($pass_lost) {
$pass_lost = isset($pass_lost) ? $pass_lost null;
global 
$_CONFIG;
$pass generatepass();
$temp md5($pass);
         
$replace="UPDATE ".$_CONFIG['table_utenti'].
         SET password='
$temp' WHERE mail='$pass_lost'";
         
$risultato=mysql_query ($replace) or die ("Impossibile aggiornamento"); 
$testo "Hai richiesto l'assegnazione di una nuova password:\n La seguente password sarà attiva con effetto immediato: {$pass}\n [url]http://www.sito.com[/url]"
mail($pass_lost"Cambio pass"$testo"From: [email]info@sito.com[/email]"); 
:master: :master: :master: