sql >> Database >  >> RDS >> Mysql

Vastgelopen op PHP-query

Je controleert of de post-waarden zijn ingesteld voor het wachtwoord (wat ze altijd zullen zijn, omdat dat formulierelement altijd wordt ingediend). In plaats van simpelweg te controleren of die waarden zijn ingesteld, moet u ervoor zorgen dat ze niet leeg zijn. gebruik empty() Gebruik bij het maken van vergelijkingen ook niet het woord "AND" en gebruik de operator en "&&".

        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>";}

        }

Ik kijk naar het verkeerde stukje code. Het bovenstaande advies is een goed advies, maar uw probleem is hier:

Als de wachtwoordvelden leeg zijn, zullen deze nooit hetzelfde zijn, dus if ($oldpassword==$oldpassworddb) zal altijd onwaar evalueren.

Probeer

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


  1. aangrenzend model , gegeven een id retourneert de bladknooppunten

  2. SQL om een ​​samengevoegde reeks resultaten te retourneren

  3. MySQL - hoe bewaar je tijd met de juiste tijdzone? (van Java)

  4. hoe je twee verschillende tabellen samenvoegt en sorteert in Mysql