आप जांच कर रहे हैं कि पोस्ट मान पासवर्ड के लिए सेट हैं (जो वे हमेशा रहेंगे, क्योंकि वह फॉर्म तत्व हमेशा सबमिट किया जाएगा)। बस यह जाँचने के बजाय कि क्या वे मान सेट हैं, सुनिश्चित करें कि वे खाली नहीं हैं। खाली का उपयोग करें() साथ ही, तुलना करते समय "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)
हमेशा असत्य का मूल्यांकन करेगा।
कोशिश करें
if ($oldpassword==$oldpassworddb && !empty($_POST['oldpassword']))