uso questo codice per permettere agli utenti di aggiornare la password
Codice PHP:
if (isset($_POST['oldpw'],$_POST['newpw'],$_POST['newpwr'])){
$old=trim(filter_var($_POST['oldpw'], filter_sanitize_string));
$new=trim(filter_var($_POST['newpw'], filter_sanitize_string));
$newr=trim(filter_var($_POST['newpwr'], filter_sanitize_string));
$shao = sha1($old);
do { $stt=$data->query("SELECT password FROM login WHERE id_login='$log'");
$all=$data->estrai($stt);
$oldsp=$alk->password;
if ($shao!=$oldsp){
$msg="La password inserita non è corretta
$old
$shao";
break;
}
if ($new!=$newr){
$msg="Le due password non coincidono";
break;
} $hashnew=sha1($new);
$newpwd=$data->query("UPDATE `data1`.`login` SET `password` = '$hashnew' WHERE `login`.`id_login` = '$log'");
} while (false);
if(isset($hashnew)){ $msg="Password cambiata"; }
}
Però mi restituisce sempre il messaggio La pswd inserita non è corretta.
Facendo degli echo ho visto che in $shao finisce la vecchia password inserita dall'utente senza che venga criptata, e non riesco a capire come mai!