sql >> Databasteknik >  >> RDS >> Mysql

Fastnade på PHP-frågan

Du kontrollerar att postvärdena är inställda för lösenordet (vilket de alltid kommer att vara, eftersom det formulärelementet alltid kommer att skickas). Istället för att bara kontrollera om dessa värden är inställda, se till att de inte är tomma. använd empty() Använd inte ordet "AND" när du gör jämförelser och använd operatorn och "&&".

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

        }

Jag tittar på fel kodbit. Ovanstående råd är goda råd, men ditt problem är här:

Om lösenordsfälten är tomma kommer dessa aldrig att vara desamma, så if ($oldpassword==$oldpassworddb) kommer alltid att utvärdera falskt.

Prova

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


  1. SQLite Database ger varning automatiskt index på <tabellnamn>(kolumn) Efter uppgradering av Android L

  2. Hur man begränsar ord men inte definitioner med mysql

  3. Strongloop:filtrera data med [och] och [eller] villkor tillsammans

  4. Hur man infogar moment JS-tid i MySQL