Mysql
 sql >> Database >  >> RDS >> Mysql

Bloccato su query PHP

Stai controllando che i valori dei post siano impostati per la password (cosa che saranno sempre, perché quell'elemento del modulo verrà sempre inviato). Invece di controllare semplicemente se quei valori sono impostati, assicurati che non siano vuoti. use empty() Inoltre, quando si effettuano confronti non utilizzare la parola "AND" utilizzare l'operatore e "&&".

        if (!empty($_POST['repeatnewpassword']) && !empty($_POST['newpassword'])) {
            if ($newpassword==$repeatnewpassword)
            {
                $querychange = mysql_query("UPDATE login SET password='$newpassword' WHERE   username='$username'");
                echo "<div class='successmate'><br><br><br><br><hr>Password has been changed!</hr></div><div class='successmate'><br><hr><br><h2><p><a href='index2.php'><br><br></a></p></h2></div>";
            }
            else {echo "<div class='results'>new password(s) dont match</div><div class='successmate'><br><br><h2><p><a href='changepassword.php'>try again?</a></p></h2></div>";}

        }

Sto guardando il pezzo sbagliato di codice. Il consiglio di cui sopra è un buon consiglio, ma il tuo problema è qui:

Se i campi della password sono vuoti, non saranno più gli stessi, quindi if ($oldpassword==$oldpassworddb) valuterà sempre false.

Prova

if ($oldpassword==$oldpassworddb && !empty($_POST['oldpassword']))