Mysql
 sql >> Base de données >  >> RDS >> Mysql

Bloqué sur une requête PHP

Vous vérifiez que les valeurs de publication sont définies pour le mot de passe (ce qu'elles seront toujours, car cet élément de formulaire sera toujours soumis). Au lieu de simplement vérifier si ces valeurs sont définies, assurez-vous qu'elles ne sont pas vides. use empty() De plus, lorsque vous faites des comparaisons, n'utilisez pas le mot "AND", utilisez l'opérateur 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>";}

        }

Je regarde le mauvais morceau de code. Les conseils ci-dessus sont de bons conseils, mais votre problème est ici :

Si les champs de mot de passe sont vides, ils ne seront jamais les mêmes, donc if ($oldpassword==$oldpassworddb) évaluera toujours faux.

Essayez

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