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!