Salve a tutti, ho un database utenti e ho scritto una funzione che permette di modificare la password, fino a qualche giorno fa funzionava tutto perfettamente ora, non so come, mi succede una cosa strana, quando cerco di modificare tramite query il valore del campo password se metto la stessa password ottengo un errore mentre se la cambio la query funziona.
Faccio un esempio, ho questo campo da modificare che contiene 'pwdesempio' se chiamo la funzione e cerco di modificare il campo con lo stesso valore 'pwdesempio' la query non funziona mentre se la cambio con un altro valore esempio 'pwdesempio1' funziona benissimo!
Sembra che la query eviti di reimpostare il campo con un valore uguale a quello che già contiene, ma da codice non c'è nessun tipo di verifica se i due valori sono uguali!
posto il codice:
Codice PHP:
<?php
require_once 'database.php'; //serve per connettersi al database
function resetPassword($userPassword,$userId)
{
// Apro la connessione al database
$connection = getConnection();
// Questa la query di aggornamento
$sql = "UPDATE utenti SET password ='%s' WHERE id_user ='%d'";
// Assegno alla query i parametri da cercare
$sql = sprintf($sql, $userPassword, $userId);
// Eseguo la query
$result = mysql_query($sql, $connection);
if (false == $result || mysql_affected_rows($connection) == 0)
{
return false;
}
else
{
return true;
}
}
//faccio una prova
if( false == resetPassword('pwdesempio',1) )
echo 'FALSO';
else
echo'VERO';
se nel campo password c'è già 'pwdesempio' mi ritorna false!
Come mai? come posso evitarlo?