Buongiorno.. ho un urgente problema da risolvere.
Ho scritto un codice in php per permettere ad un utente di cambiare password.
La form è costituita da due campi: Password attuale e Nuova Password.
L'utente inserisce la sua vecchia password, inserisce quella nuova, e gliela modifica. Nulla di che, è uno script semplicissimo.
Il problema è che quando entra nell' IF ($attpass = $ex), mi fa cambiare la password anche se inserisco dati a caso. In teoria, se inserisco una password diversa da quella attuale dovrebbe far apparire il messaggio: "La password attuale non corrisponde!" Invece me la fa cambiare comunque.
Questo è il codice:
if (isset($_POST['esegui']))
{
if(($_POST['attpass'])&&($_POST['newpass'])!="")
{
$attpass=md5($_POST['attpass']);
$newpass=md5($_POST['newpass']);
$rac="SELECT password FROM utente WHERE id=$sesutente";
$ex=mysql_query($rac)or die (mysql_error());
if($attpass = $ex)
{
if($newpass!=$attpass)
{
$passquery="UPDATE utente SET password=('$newpass') WHERE id=$sesutente";
$queryeseguita= mysql_query($passquery)or die (mysql_error());
echo "<p class='allpm'>Password modificata</p>";
@$_SESSION['pass']=$newpass;
header("Refresh: 2; url=" . $_SERVER["PHP_SELF"]);
}else{
echo "<p class='allpm'>La password inserita è identica alla precedente!</p>";
}
}else{
echo "<p class='allpm'>La password attuale non corrisponde!</p>";
}
}else{
echo "<p class='allpm'>Necessario compilare tutti i campi!</p>";
}
}
Precisazione: $sesutente contiene l'id di sessione.