Php OOP更改密码功能出现错误

Php OOP更改密码功能出现错误,php,sql,forms,oop,pdo,Php,Sql,Forms,Oop,Pdo,我确信我在这里的某个地方犯了一个非常愚蠢的错误——因此我创建了这个更改密码表单,并在OOP中使用了一个相当拙劣的尝试——到目前为止,我没有任何“更改密码”代码,因为我正试图首先解决错误 所以,我的问题是——当我提交表单时,我得到了错误“请填写每个字段!”尽管事实上这三个字段都已完成。再说一次,我肯定我犯了一个非常愚蠢的错误,但我可以在你的帮助下做到!(提前打电话!) 我的表单页面顶部的代码 if (empty($_POST) === false) { $password = trim($_

我确信我在这里的某个地方犯了一个非常愚蠢的错误——因此我创建了这个更改密码表单,并在OOP中使用了一个相当拙劣的尝试——到目前为止,我没有任何“更改密码”代码,因为我正试图首先解决错误

所以,我的问题是——当我提交表单时,我得到了错误“请填写每个字段!”尽管事实上这三个字段都已完成。再说一次,我肯定我犯了一个非常愚蠢的错误,但我可以在你的帮助下做到!(提前打电话!)

我的表单页面顶部的代码

if (empty($_POST) === false) {

  $password = trim($_POST['password']);
  $newpassword = trim($_POST['newpassword']);
  $confpassword = trim($_POST['confnewpassword']);
  $id = $_SESSION['id'];

  if (empty($password) === true || empty($newpassword) === true || empty($confnewpassword) === true) {
    $errors[] = 'Please fill out each field!';
  } else if ($users->current_password($password) === false) {
    $errors[] = 'Current password is incorrect!';
  } else if ($newpassword != $confpassword) {
    $errors[] = 'New password and Confirm password do not match!';
  } else if ($password == $newpassword){
    $errors[] = 'You cannot change your password to your existing password';
  }else {
      $errors[] = 'Password Changed!';
    }
} 
我的当前密码功能

public function current_password($password) {

    $id = $_SESSION['id'];

    $query = $this->db->prepare("SELECT `password` FROM `users` WHERE `ID` = ?");
    $query->bindValue(1, $id);

    $enteredpassword == $password;

    try{

        $query->execute();
        $storedpass = $query->fetchColumn();

        if ($storedpass === sha1($enteredpassword)) {
            return true;
        } else {
            return false;
        }

    } catch (PDOException $e){
        die($e->getMessage());
    }


}
我的HTML表单

<form class="form-horizontal" role="form" method="POST">
  <div class="form-group">
    <label class="col-sm-4 control-label">EIN / Username</label>
    <div class="col-sm-8">
      <input class="form-control" id="disabledInput" type="text" placeholder="<?php echo $ein; ?>" disabled>
    </div>
  </div>
  <div class="form-group">
    <label for="inputPassword" class="col-sm-4 control-label">Enter Existing Password</label>
    <div class="col-sm-8">
      <input type="password" class="form-control" name="password" placeholder="Enter Existing Password">
    </div>
  </div>
  <div class="form-group">
    <label for="inputPassword" class="col-sm-4 control-label">Enter New Password</label>
    <div class="col-sm-8">
      <input type="password" class="form-control" name="newpassword" placeholder="Enter New Password">
    </div>
  </div>
  <div class="form-group">
    <label for="inputPassword" class="col-sm-4 control-label">Confirm New Password</label>
    <div class="col-sm-8">
      <input type="password" class="form-control" name="confnewpassword" placeholder="Confirm New Password">
    </div>
  </div>
  <button type="submit" class="btn btn-primary btn-block">Change Password</button>
</form>

EIN/用户名

您的confime密码变量名称为$confpassword

$confpassword = trim($_POST['confnewpassword']);
您正在中使用$confnewpassword

if (empty($password) === true || empty($newpassword) === true || empty($confnewpassword) === true)
最后一个空()检查。在分配给$confpassword时,您正在检查$confnewpassword。