File "reset_password_new.php"

Full path: /home/mysamm/public_html/mysamm_login/reset_password_new.php
File size: 9.81 B
MIME-type: text/x-php; charset=us-ascii
Charset: utf-8

Download   Open   Edit   Advanced Editor &nnbsp; Back

<?php
include("header.php");
if (!isset($_SESSION['user_type']) ) {   
    // If the user is not admin, redirect or show an error
        header("Location: index.php");
		exit();	
}

if ($_SESSION['user_id']==14 ) {   
    // If the user is not admin, redirect or show an error
        header("Location: login.php");
		exit();	
}
$msg='';
$msgtype='';


if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $old_password = trim($_POST['old_password']);
    $new_password = trim($_POST['new_password']);
    $confirm_new_password = trim($_POST['confirm_new_password']);

    // Validate fields
    if (empty($old_password) || empty($new_password) || empty($confirm_new_password)) {
        $msg = "All fields are required!";
        $msgtype = "danger";
    } elseif ($new_password !== $confirm_new_password) {
        $msg = "Passwords do not match!";
        $msgtype = "danger";
    } elseif (strlen($new_password) < 8) {
        $msg = "Password must be at least 8 characters long!";
        $msgtype = "danger";
    }  else {
        // Secure password hashing
        $hashedPassword = password_hash($new_password, PASSWORD_BCRYPT);

        // Database connection
        $db = new Connection();

        $user_id = $_SESSION['user_id'];
        $res = $db->QueryCount("SELECT * FROM admin_users WHERE id = '$user_id'  and status = 0");


        if ($res > 0) {
            $user = $db->GetRow("SELECT * FROM admin_users WHERE id = '$user_id'  and status = 0");
            $storedHashedPassword = $user['password'];
            //print_r($storedHashedPassword);
            //die();
            if (password_verify($old_password, $storedHashedPassword)) {
            date_default_timezone_set("Asia/Kolkata");		
            $updated_at=date("Y-m-d H:i:s");
            $update = $db->execute("UPDATE admin_users SET password = '$hashedPassword',updated_at = '$updated_at' WHERE id = $user_id");
                if ($update) {
                    $msgtype = "success";
                    $msg = "New Password Updated!";
                    header("Location: reset_password.php");
                    exit();
                } else {
                    $msgtype = "danger";
                    $msg = "Error" . mysqli_connect_errno();
                }
            } else {
                $msgtype = "warning";
                $msg = "Invalid Password!";
            }
        } else {
            $msgtype = "warning";
            $msg = "Invalid Password!";
        }
    }
    header("Location: reset_password.php");
}
?>


<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

    <div class="container">
    <div class="row justify-content-center" >
        <div class="col-md-4">
            <div class="card">
                <div class="card-header text-center">
                    <h3 class="card-title">Reset Password</h3>
                </div>
                <div class="card-body">
                    
                    <?php
                    if (isset($msg)) {
						if(!empty($msg))
                        {
							echo '<div class="alert alert-' . htmlspecialchars($msgtype) . ' text-center" role="alert">' . htmlspecialchars($msg) . '</div>';
                        }
                    }
                    ?>

                    <form method="post" action="" id="passwordForm">
                        <div class="form-group">
                            <label for="old_password">Old Password<span class="text-danger">*</span>:</label>
                            <div class="input-group">
                                <input type="password" id="old_password" name="old_password" class="form-control" required />
                                <div class="input-group-append">
                                    <span class="input-group-text" onclick="togglePassword('old_password', 'toggleIcon_old')">
                                        <i id="toggleIcon_old" class="fa fa-eye"></i>
                                    </span>
                                </div>
                            </div>
                        </div>

                        <div class="form-group">
                            <label for="new_password">New Password<span class="text-danger">*</span>:</label>
                            <div class="input-group">
                                <input type="password" id="new_password" name="new_password" class="form-control" required />
                                <div class="input-group-append">
                                    <span class="input-group-text" onclick="togglePassword('new_password', 'toggleIcon_new')">
                                        <i id="toggleIcon_new" class="fa fa-eye"></i>
                                    </span>
                                </div>
								<p id="error-message" class="text-sm mt-2"></p>
                            </div>
                        </div>

                        <div class="form-group">
                            <label for="confirm_new_password">Confirm New Password<span class="text-danger">*</span>:</label>
                            <div class="input-group">
                                <input type="password" id="confirm_new_password" name="confirm_new_password" class="form-control" required />
                                <div class="input-group-append">
                                    <span class="input-group-text" onclick="togglePassword('confirm_new_password', 'toggleIcon_confirm')">
                                        <i id="toggleIcon_confirm" class="fa fa-eye"></i>
                                    </span>
                                </div>
								
                            </div>
							<p id="confirm-error-message" class="text-sm mt-2"></p>
                        </div>
						<p id="message"></p>
                        <!--<button type="submit" name="reset_request" class="btn btn-primary btn-block" id="submit-btn">Submit</button>-->
						<button id="submit-btn" disabled class="w-full mt-4 p-2 bg-gray-400 text-white rounded-lg cursor-not-allowed transition-all">Submit</button>
                        <div class="text-center" style="margin-top: 10px;">
                            <a href="login.php">Back to Portal</a>
                        </div>
                    </form><!--
					<h3>Password Requirements:</h3>
					<ul class="b">
					<li>Minimum length: Your password must be at least 10 characters long.</li>
					<li>Must contain at least one letter: It should include at least one letter (uppercase or lowercase).</li>
					<li>Must contain at least one number: Your password must have at least one digit (0-9).</li>
					<li>Must contain at least one special character: Include at least one of the following special characters: !@#$%^&*()_+.</li>
					<ul>-->
                </div>
            </div>
        </div>
    </div>
</div>
<style>
#error-message {
  color:red;
}

#confirm-error-message{
  color:red;
}
</style>


<script>

		function togglePassword(inputId, iconId) {
			var input = document.getElementById(inputId);
			var icon = document.getElementById(iconId);

			if (input.type === "password") {
				input.type = "text";
				icon.classList.remove("fa-eye");
				icon.classList.add("fa-eye-slash");
			} else {
				input.type = "password";
				icon.classList.remove("fa-eye-slash");
				icon.classList.add("fa-eye");
			}
		} 
        $(document).ready(function () {
            function validatePassword() {
                let password = $("#new_password").val();
                let confirmPassword = $("#confirm_new_password").val();
                let minLength = password.length >= 10;
                let specialChar = /[@#$%&]/.test(password);
                let upperCase = /[A-Z]/.test(password);
                let lowerCase = /[a-z]/.test(password);
                let isValid = minLength && specialChar && upperCase && lowerCase;
                let errorMessage = $("#error-message");
                let confirmErrorMessage = $("#confirm-error-message");
                if (!minLength) {
                    errorMessage.text("Password must be at least 10 characters long.").removeClass("text-green-500").addClass("text-red-500");
                } else if (!specialChar) {
                    errorMessage.text("Password must include at least one of @, #, $, %, &.").removeClass("text-green-500").addClass("text-red-500");
                } else if (!upperCase) {
                    errorMessage.text("Password must include at least one uppercase letter.").removeClass("text-green-500").addClass("text-red-500");
                } else if (!lowerCase) {
                    errorMessage.text("Password must include at least one lowercase letter.").removeClass("text-green-500").addClass("text-red-500");
                } else {
                    errorMessage.text("Password is strong!").removeClass("text-red-500").addClass("text-green-500");
                }
                if (confirmPassword.length > 0) {
                    if (password !== confirmPassword) {
                        confirmErrorMessage.text("Passwords do not match.").removeClass("text-green-500").addClass("text-red-500");
                        isValid = false;
                    } else {
                        confirmErrorMessage.text("Passwords match!").removeClass("text-red-500").addClass("text-green-500");
                    }
                } else {
                    confirmErrorMessage.text("");
                }
                if (isValid) {
                    $("#submit-btn").removeAttr("disabled").removeClass("bg-gray-400 cursor-not-allowed").addClass("bg-blue-500 hover:bg-blue-600 cursor-pointer");
                } else {
                    $("#submit-btn").attr("disabled", "disabled").removeClass("bg-blue-500 hover:bg-blue-600 cursor-pointer").addClass("bg-gray-400 cursor-not-allowed");
                }
            }
            $("#new_password, #confirm_new_password").on("input", validatePassword); 
        });
    </script>