PHP更改密码,但它不起作用.我相信语法没有错误,但密码不会改变


PHP changing password and it's not working. There is no error with the syntax I believe, but the password won't change

我正在制作一个名为changepassword的php文件.php该文件的唯一目的是允许用户更改密码。但是,当他们通过表单更改密码时,框字段会清除,我会收到回声警告回显"密码框留空!这似乎不想更新用户的密码,我不知道该怎么办。我是这种语言的新手,所以不要期望太多。我将非常感谢一些建设性的意见,以帮助我更好地编写 php。

<?php
session_start(); 
#error_reporting(E_ALL); ini_set('display_errors', 1);
require_once('connect.php');
require_once "lib.php";
require_once "utils.php";
if(isset($_POST['submit']) && $_SESSION['active']===true)
{
    if(!empty($_POST['OldPassword'])&&
        !empty($_POST['NewPassword'])&&
        !empty($_POST['NewPassword1']))
    {
        $OldPassword = mysqli_real_escape_string($link,htmlentities($_POST['OldPassword']));
        $NewPassword = mysqli_real_escape_string($link,htmlentities($_POST['NewPassword']));
        $NewPassword1 = mysqli_real_escape_string($link,htmlentities($_POST['NewPassword1']));
        $EmailAdress = $_SESSION['EmailAdress'];
        $sql = "SELECT * FROM users WHERE EmailAddress='$EmailAddress'";
        if($result = mysqli_query($link, $sql))
        {
            while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
            {
                $temp1=$row['Password'];
                if($row['Password'] != $OldPassword)
                {
                    echo "<div id='change_error1'>* This Does Not Match Previous Password!<br></div>";
                }
            }
            if($NewPassword != $NewPassword1)
            {
                echo "<div id='change_error2'>* You Passwords DO NOT Match!</div>";
            }
            if($temp1 == $OldPassword && $NewPassword == $NewPassword1)
            {
                $sql = "UPDATE users SET Password='$NewPassword' WHERE EmailAddress='$EmailAddress'";
                if($result = mysqli_query($link, $sql))
                {
                    header("Location: profile.php");
                    echo "<strong>YOURE PASSWORD HAS BEEN UPDATED!</strong>";
                }
            }
        }
    }
    else
    {
        echo "<div id='change_error3'>A Password Box was Left Empty!</div>";
    }
}
?>
<html>
   <head>
      <title>Change Password</title>
   </head>
   <br></br>
   <br></br>
   <body class="body">
      <div id="wrapper">
         <div id="header">
            <br>
            <h1> PHP Learning Course </h1>
            <br>
            <?php require_once "left.php" ?>
         </div>
         <div id="change">
            <div id="change_name">
               <h3> Change Password</h3>
            </div>
            <p>
            <div id='change_form'>
               <form action='changepass.php' method='POST'>
                  Old Password:<br> <input name='OldPassword' type='password'/></br>
                  <br>
                  New Password:<br> <input name='NewPassword' type='password'/></br>
                  <br>
                  Confirm Password:<br> <input name='newpass1' type='password'/></br>
                  <br>
                  <input name='submit' type='submit' value='Change Password' />
               </form>
               </p>
            </div>
         </div>
         <!-- end main div -->
      </div>
      <!-- end wrapper div -->
   </body>
</html>
 !empty($_POST['NewPassword1']))

索引应该是,newpass1

!empty($_POST['newpass1']))

因为在表格中,你已经把,

 Confirm Password:<br> <input name='newpass1' type='password'/></br>

坚持使用一种约定以避免这些错误。