Recovering Drupal administrator password from UI

There are many methods to recover admin password described here but this method gives you a admin panel to recover admin username and password.

Please copy and paste the below code in a file and name it whatever you like or download the attachment in this post, remove .txt extension and drop it in root of your website[in same place where you find robots.txt]. In my case i named it as "generate_drupal_admin_pwd.php".

and then access your website like: http://YOUR_WEBSITE_NAME/generate_drupal_admin_pwd.php

Warning: Putting .php files in root directory have many security concerns, its recommended after changing password you should delete the file.

<title>Recover Password</title>

<script src=""></script>
<script type="text/javascript">

function checkPasswordMatch() {
    var password = $("#txtNewPassword").val();
    var confirmPassword = $("#txtConfirmPassword").val();
    if(password != '' && confirmPassword != '') {
        if (password != confirmPassword)
                $("#divCheckPasswordMatch").html("<div class='pass_dont_match'>Passwords do not match!</div>");
                $("#divCheckPasswordMatch").html("<div class='pass_match'>Passwords match.</div>");

$(document).ready(function () {

html { height: 100% }
::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; }
::selection { background: #fe57a1; color: #fff; text-shadow: none; }
body { background-image: radial-gradient( cover, rgba(92,100,111,1) 0%,rgba(31,35,40,1) 100%), url('') }
.login {
  background: #eceeee;
  border: 1px solid #42464b;
  border-radius: 6px;
  height: 330px;
  margin: 20px auto 0;
  width: 298px;
  margin-top: 50px;
.login h1 {
  background-image: linear-gradient(top, #f1f3f3, #d4dae0);
  border-bottom: 1px solid #a6abaf;
  border-radius: 6px 6px 0 0;
  box-sizing: border-box;
  color: #727678;
  display: block;
  height: 43px;
  font: 600 14px/1 'Open Sans', sans-serif;
  padding-top: 14px;
  margin: 0;
  text-align: center;
  text-shadow: 0 -1px 0 rgba(0,0,0,0.2), 0 1px 0 #fff;
input[type="password"], input[type="text"] {
  background: url('') center left no-repeat, linear-gradient(top, #d6d7d7, #dee0e0);
  border: 1px solid #a1a3a3;
  border-radius: 4px;
  box-shadow: 0 1px #fff;
  box-sizing: border-box;
  color: #696969;
  height: 39px;
  margin: 9px 0 9px 29px;
  padding-left: 37px;
  transition: box-shadow 0.3s;
  width: 240px;
    padding-left: 33px;

  margin-top: 53px;
input[type="password"]:focus, input[type="text"]:focus {
  box-shadow: 0 0 4px 1px rgba(55, 166, 155, 0.3);
  outline: 0;
.show-password {
  display: block;
  height: 16px;
  margin: 26px 0 0 28px;
  width: 87px;
input[type="checkbox"] {
  cursor: pointer;
  height: 16px;
  opacity: 0;
  position: relative;
  width: 64px;
input[type="checkbox"]:checked {
  left: 29px;
  width: 58px;
.toggle {
  background: url( no-repeat;
  display: block;
  height: 16px;
  margin-top: -20px;
  width: 87px;
  z-index: -1;
input[type="checkbox"]:checked + .toggle { background-position: 0 -16px }
.forgot {
  color: #7f7f7f;
  display: inline-block;
  float: right;
  font: 12px/1 sans-serif;
  left: -19px;
  position: relative;
  text-decoration: none;
  top: 5px;
  transition: color .4s;
.forgot:hover { color: #3b3b3b }
input[type="submit"] {
  font-family:Arial, "Helvetica", sans-serif;
  text-shadow:1px 1px 0px #37a69b;
  margin: 29px 0 0 29px;
  border: none;
  background-color: #37a69b;
  background-image: linear-gradient(top,#3db0a6,#3111);
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border-bottom-right-radius: 5px;
  box-shadow: inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #497a78, 0px 10px 5px #999;

.shadow {
  background: #000;
  border-radius: 12px 12px 4px 4px;
  box-shadow: 0 0 20px 10px #000;
  height: 12px;
  margin: 30px auto;
  opacity: 0.2;
  width: 270px;

input[type="submit"]:active {
  box-shadow: inset 0px 1px 0px #2ab7ec, 0px 2px 0px 0px #31524d, 0px 5px 3px #999;

.pass_match {
  padding-left: 96px;
  padding-top: 8px;
  color: darkgreen;

.pass_dont_match {
  padding-left: 65px;
  padding-top: 8px;
  color: red;

.pass_changed {
  margin-left: 777px;
  color: green;
.mainloginarea {
margin-top: 250px;


 define('DRUPAL_ROOT', getcwd()); //the most important line
require_once './includes/';
DRUPAL_ROOT . '/includes/';
$admin_name = db_query("SELECT name from {users} WHERE uid = :uid", array(":uid" => 1))->fetchField();

if((!empty($_POST['txtNewPassword'])) && (!empty($_POST['txtConfirmPassword']))) {
$_POST['txtNewPassword'] === $_POST['txtConfirmPassword']) {
$newpwd = $_POST['txtNewPassword'];
$hashed_pass user_hash_password($newpwd);
$updated = db_update('users') // Table name no longer needs {}
'pass' => $hashed_pass,
condition('uid', 1, '=')
'Admin password changed',

<div class = "mainloginarea">
<h1 align = "center">Drupal Admin Password Changer</h1>
      <div class="login">
           <form method = "POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <div class = "admin_username"> Admin Username:<b><?php echo $admin_name ?></b></div><br />
        <input placeholder= "Enter Password" name="txtNewPassword" type="password" id="txtNewPassword">
        <input placeholder = "Re-Enter Password" name="txtConfirmPassword"  type="password" id="txtConfirmPassword">

                <div class="registrationFormAlert" id="divCheckPasswordMatch">
        <input type="submit" value="Submit">
<div class="shadow"></div>
<?php if($updated) print "<div class=pass_changed>Thank You! Password Changed. <a href= $base_url/user>Click Here<a/> to login</div>"; ?>

Drupal admin password changer panel