sql >> データベース >  >> RDS >> Mysql

PHPクエリでスタック

    パスワードに投稿値が設定されていることを確認しています(そのフォーム要素は常に送信されるため、常に設定されます)。これらの値が設定されているかどうかを単に確認するのではなく、空でないことを確認してください。 empty()を使用します。また、比較を行うときは、「AND」という単語を使用せず、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>";}
    
            }
    

    私は間違ったコードのチャンクを見ています。上記のアドバイスは良いアドバイスですが、あなたの問題はここにあります:

    パスワードフィールドが空の場合、これらは同じになることはないため、if ($oldpassword==$oldpassworddb) 常にfalseと評価されます。

    試してみてください

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


    1. mysqlピボット-同じテーブルから異なる列にデータをフェッチするにはどうすればよいですか?

    2. シーケンスを所有するテーブルと列を取得します

    3. ER_NOT_SUPPORTED_AUTH_MODE-MySQLサーバー

    4. where句のタイムスタンプを比較する方法