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 / problems about this tutorial, please comment on the  form below.😊

2 Comments

Leave a Reply

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