Change Password in PHP with Mysql using OOPs concepts

In this post I will explain you how user can change their old password. First create a HTML Form with three fields. It’s full validate form like old password and new or confirm password match or not.

File Structure for this tutorial:

  • Create Change Password HTML Form
  • Create Database Connection with phpmyadmin
  • Create a class file here the change function on this class file.

See Also

Create Change Password HTML Form

change_password.php

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Change Password in PHP with Mysql using OOPs concepts</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<?php  
  
  include_once "class/students.php";
  $studentObj = new Students();
  
  $success = "";
  $error = "";
  if (isset($_POST['submit'])) {
      $newdata['new_password'] = md5($_POST['new_password']);
      $newdata['old_password'] = md5($_POST['old_password']);
      $newdata['con_password'] = md5($_POST['con_password']);
      $id  = $_SESSION['id'];
      if ($newdata['new_password'] !== "" && $newdata['old_password'] !== "" && $newdata['con_password'] !== "") {
          if ($newdata['new_password'] == $newdata['con_password']) {
              if ($studentObj->changePassword($id)) {
                $success = "Your new password update successfully.";
              }else{
                $error = "Old Password is not match";
              }
          }else{
            $error = "New password and confirm password do not matched";
          }
      }else{
        $error = "Please fill the all fields";
      }
    }
?>
<body class="hold-transition login-page">
   <div class="login-box">
      <div class="login-logo">
         <a href=""><b>Change Password</b></a>
      </div>
      <?php
         if (!empty($error)) {
          echo "<div class='alert alert-danger alert-dismissible'>
                  <button type='button' class='close' data-dismiss='alert'>×</button>$error
                </div>";
         } elseif (!empty($success)) {
          echo "<div class='alert alert-success alert-dismissible'>
                  <button type='button' class='close' data-dismiss='alert'>×</button>$success
                </div>";
         }
      ?>
      <div class="card">
         <div class="card-body login-card-body">
            <p class="login-box-msg">Are you want to change Password?</p>
            <form action="" method="post">
               <div class="input-group mb-3">
                  <input type="password" name="old_password" class="form-control" placeholder="Old Password" required="">
                  <div class="input-group-append">
                     <div class="input-group-text">
                        <span class="fa fa-lock"></span>
                     </div>
                  </div>
               </div>
               <div class="input-group mb-3">
                  <input type="password" name="new_password" class="form-control" placeholder="New Password" required="">
                  <div class="input-group-append">
                     <div class="input-group-text">
                        <span class="fa fa-lock"></span>
                     </div>
                  </div>
               </div>
               <div class="input-group mb-3">
                  <input type="password" name="con_password" class="form-control" placeholder="Confirm Password" required="">
                  <div class="input-group-append">
                     <div class="input-group-text">
                        <span class="fa fa-lock"></span>
                     </div>
                  </div>
               </div>
               <div class="row">
                  <div class="col-6">
                     <div class="icheck-primary">
                        <a href="home.php" class="text-center">Home Page</a>
                     </div>
                  </div>
                  <div class="col-6">
                     <input type="submit" name="submit" class="btn btn-primary" value="Change Password">
                  </div>
               </div>
            </form>
         </div>
      </div>
   </div>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</body>
</html>

Output

Change Password in PHP with Mysql using OOPs concepts

Create Database Connection with PHPMyadmin

database.php

<?php

class Database{

	protected $localhost = "localhost";
	protected $servername = "root";
	protected $password = "";
	protected $database = "scholarship";
	public $con;	
	
	
	public function connection(){
		// Create connection
		$this->con = new mysqli($this->localhost, $this->servername, $this->password, $this->database);
		// Check connection
		if ($this->con->connect_error) {
			die("Connection failed: " . $this->con->connect_error);
		}
		return $this->con;
	}
}

?>

Create a class file here the change function on this class File

students.php

<?php
session_start();
include_once "database.php";

class Students {

	public $studentTable;
	public $dbObj;
	public $con;

	public function __construct() {
	    $this->studentTable = "students";
	    $this->dbObj = new Database();
	    $this->con = $this->dbObj->connection();
	}


	public function changePassword($id){
	    $new_password = md5($_POST['new_password']);
	    $old_password = md5($_POST['old_password']);
	    $con_password = md5($_POST['con_password']);

	    if(!empty($new_password) && !empty($old_password) && !empty($con_password)){
	    	if($new_password == $con_password){
	    	 $query = "SELECT * FROM $this->studentTable WHERE id = '$id'";
	    	 $result = $this->con->query($query);
	    	if ($result->num_rows > 0 ) {
	    	    $row = $result->fetch_assoc();
	    	    $db_password = $row['password'];
	    		if($db_password == $old_password){
	    	    	    $update = "UPDATE $this->studentTable SET password = '$new_password' WHERE id = '$id'";
	    		if ($this->con->query($update)==true) {
	    		    return true;
	    		}else{
	    		    return false;
	    		}
		       }else{
		    	    return false;
		       }
		    }else{
		   	return false;
		    }
		 }else{
		    return false;
	        }
	    }
	}
			
}

$studentObj = new Students();

You can always support by sharing on social media or recommending my blog to your friends and colleagues. If you have any suggestions or problems about this tutorial, please comment on the  form below.😊

Change Password in PHP with Mysql using OOPs concepts

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *