Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Preso na consulta PHP


Você está verificando se os valores de postagem estão definidos para a senha (o que sempre será, porque esse elemento de formulário sempre será enviado). Em vez de simplesmente verificar se esses valores estão definidos, certifique-se de que não estejam vazios. use empty() Além disso, ao fazer comparações, não use a palavra "AND" use o operador and "&&".
        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>";}

        }

Estou olhando para o pedaço de código errado. O conselho acima é um bom conselho, mas seu problema está aqui:

Se os campos de senha estiverem vazios, eles nunca serão os mesmos, então if ($oldpassword==$oldpassworddb) sempre avaliará false.

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