SAlve ragazzi,
ecco il quesito. Quando un utente perde la password ho pensato di mandargli via mail una password temporanea che sostituisca, nella tabella ove vengono immagazzinati i dati di registrazione degli utenti, quella usata dall'utente in oggetto in fase di prima registrazione. lo script che uso è questo:

Codice PHP:
<?php
if(!isset($_POST['submit']))
{
    
header("Location: [url]http://www.listafacile.com[/url]");
    die;
    exit;
}
//varie info per email
$oggi date("j F Y G:i");
$sito "http://www.listafacile.com";
$ip "$_SERVER[REMOTE_ADDR]";
$browser "$_SERVER[HTTP_USER_AGENT]";
$soggetto "Modulo da $sito";
$mail htmlentities(strip_tags($_POST['mail']));


if(
trim($_POST['mail']) == "")
{
print 
"La mail è obbligatoria
<a href=\"formregistraz.php\">indietro</a>
"
;
}
else 


include(
"config.php"); 
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi"); 
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");

$sql "SELECT * FROM utenti WHERE mail = '$mail'"
$result mysql_query ($sql) or die (mysql_error()); 
$n mysql_num_rows($result); 

if (
$n != 0

echo 
"L'email inserita è corretta
"


else 

header('Refresh: 0; URL=' .'lostpsw.php'); } 


// Imposto la lunghezza della password a 10 caratteri
$lung_pass 10;

// Creo un ciclo for che si ripete per il valore di $lung_pass
for ($x=1$x<=$lung_pass$x++)
{
  
// Se $x è multiplo di 2...
  
if ($x 2){

    
// Aggiungo una lettera casuale usando chr() in combinazione
    // con rand() che genera un valore numerico compreso tra 97
    // e 122, numeri che corrispondono alle lettere dell'alfabeto
    // nella tabella dei caratteri ASCII
    
$mypass $mypass chr(rand(97,122));

  
// Se $x non è multiplo di 2...
  
}else{

    
// Aggiungo alla password un numero compreso tra 0 e 9
    
$mypass $mypass rand(0,9);

  }
}

//imposto la seconda query che aggiorna il database con la password temporanea
include("config.php"); 
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi"); 
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");

mysql_query("UPDATE utenti SET password = '".$mypass."', confermapassword = MD5('".$mypass."') WHERE mail = '".$mail."'") or die(mysql_error());


            
                                                
// settare qui quello che apparirà nel campo from della email
                                
$from_mail "info@iso-consulenze.info";
                                
// invio della mail contenente la passwd e gli altri dati
                                     
$To="$mail";
                                     
$Headers ="From: $from_mail";
                                     
$Soggetto="[[url]www.iso-consulenze.info[/url]] I tuoi dati di accesso";
                                     
$Corpo.="Ciao!\n\n";
                                     
$Corpo.="     Sono il programma Sendmail di [url]http://www.iso-consulenze.info[/url]";
                                     
$Corpo.="     Questa è la tua nuova password temporanea: $mypass\n\n";
                                     
$Corpo.="     A presto!\n\n";
                                     
$Corpo.="--------------------------------------------\n";
                                     
$Corpo.="$from_mail\n";
                                     
$Corpo.="http://www.iso-consulenze.info\n";
                                     
$Corpo.="--------------------------------------------\n";
                                     
mail($To$Soggetto$Corpo$Headers);

                                    echo 
"ti è stata inviata una mail all'indirizzo $mail con i tuoi dati";



mysql_close();
?>
Ora, che succede? Lo script sembra funzionare, perchè la password, all'interno della tabella, viene sostituita con 1 da 10 temporanea generata in random. Ma poi quando vado a fare il login, ecco che mi dice che l'utente non è stato riconosciuto. Perchè?

ecco il file di controllo sul form del login

Codice PHP:
<?
session_start
();
if (isset(
$_POST['username']) && isset($_POST['password'])) {
include(
"config.php");
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("errore nella connessione");
mysql_select_db("$db_name") or die ("errore nella selezione del database");

  
$hpw=md5($_POST['password']);
  
$result=mysql_query("select * from utenti where username='$_POST[username]' and password='$hpw'");
if (
mysql_num_rows($result)!=0) {
     
$_SESSION['username']=true;
     
$valori = @mysql_fetch_assoc($result); //metti i valori del db in un array associativo
     //passa i valori come parametro richiamando la pagina
     
$_SESSION['nome'] = $valori['nome'];
     
$_SESSION['cognome'] = $valori['cognome'];
          
$_SESSION['utente_id'] = $valori['utente_id'];
     
header('location: carrello.php?id='.$valori['utente_id'].'');
  } else
    echo 
"Utente non riconosciuto";
}
mysql_close(); 
?>
potreste spiegarmi dove può stare il problema?