ho fatto un controllo che serve per inviare una nuova password all'utente che la richiede. Un primo pezzo fa un controllo nel db ora se c'è un solo utente registrato il controllo funziona benissimo se ci sono appena due utenti dice che la "Username inserita non esiste" quando in realtà c'è ed è corretta.
pezzo di codice che fa il controllo
Codice PHP:
else {
$query = "SELECT username FROM users WHERE username != '$username'";
$result = mysql_query($query, $link) or die("Errore nella query:".mysql_error());
if(mysql_num_rows($result) > 0) {
$errori[0] ="la Username inserita non esiste";
}
pezzo di funzione checkerror
Codice PHP:
case "forgotpassword":
$errori = CheckReg2();
if (count($errori) == 0) {
$query = "SELECT username FROM users WHERE username='$username' AND email = '$email'";
$result = mysql_query($query) or die("Errore nella query: " . mysql_error());
$check = mysql_num_rows($result);
if($check == 1){
function new_pwd() {
$chars = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7) {
$pwd = "gjpoe";
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pwd = $pwd . $tmp . $num;
$i++;
}
return $pwd;
}
$new_pwd = new_pwd();
$password = md5($new_pwd);
$sql = mysql_query("UPDATE users SET password='$password' WHERE email='$email'");