You will learn How to recover/reset a forgotten password using PHP and MySQLi in this post. We’ll show you how to use a Forgot Password form to recover your password if you’ve forgotten your username or email. We’ll send a password recovery email to the user after the form is submitted.
There are several accounts on various websites and platforms. The majority of individuals forget their passwords and attempt to reset their passwords on the website.
In this post, You’ll learn how to use PHP and MySQLi to retrieve a forgotten password.
We will create a forgot password HTML form using bootstrap 4. There are three fields in this file: username, new password, and confirm the new password, as well as a Submit button. This form is forwarded to the forgot.php
page after the user submits the form.
Assume the database contains a 'users'
TABLE with one user entry, as shown below. If you have a database, you can use it.
CREATE TABLE IF NOT EXISTS `users` ( `userid` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `username` varchar(100) NOT NULL, `email` varchar(255) NOT NULL, `password` varchar(100) NOT NULL, PRIMARY KEY (`userid`) ) INSERT INTO `users` (`userid`, `name`, `username`, `password`) VALUES (1, 'test', 'test abc', 'guy76tvt577vvtyyunmkl990mnn76668');
Let’s create a connect.php
file to connect MySQL database with PHP. The below code is to connecting database and selecting the database.
<?php $connection = mysqli_connect('localhost', 'root', 'paasword'); if (!$connection){ die("Database Connection Failed" . mysqli_error($connection)); } $select_db = mysqli_select_db($connection, 'test'); if (!$select_db){ die("Database Selection Failed" . mysqli_error($connection)); }
Created a forgot.php
file into the PHP project. We have started the session at the top of the file. Let’s add the HTML code that shows the forgot password form –
<!-- Optional theme --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <form id="register-form" role="form" autocomplete="off" class="form" method="post"> <div class="form-group"> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-envelope color-blue"></i></span> <input id="email" name="email" placeholder="email address" class="form-control" type="email"> </div> </div> <div class="form-group"> <input name="recover-submit" class="btn btn-lg btn-primary btn-block" value="Reset Password" type="submit"> </div> <input type="hidden" class="hide" name="token" id="token" value=""> </form>
In the code above, we have created one email field into the form. The user will enter the registered email id and ll receive an email once the emailid is correct.
Once this forgot password form is submitted, the entered data is sent in the post to the 'handler.php'
file.Let’s create a handler.php
php script that will get form data is POST method.
if(isset($_POST) & !empty($_POST)){ $email = mysqli_real_escape_string($connection, $_POST['email']); $sql = "SELECT * FROM `login` WHERE email = '$email'"; $res = mysqli_query($connection, $sql); $count = mysqli_num_rows($res); if($count == 1){ echo "Send email to user with password"; }else{ echo "User name does not exist in database"; } }
in the above code, The First check the POST
superglobal is set & not empty and assign the submitted emailid to a variable. Check that username exists in the database using the select query.
If the mysqli_num_rows()
PHP function returns one row, then we will send an email with a plain text password that is fetched from the database using the select query. Assign values of email, password to variables fetched from the select query.
Let’s create a PHP logic that will send mail using PHPMailer class.
$r = mysqli_fetch_assoc($res); $password = $r['password']; $to = $r['email']; $subject = "Your Recovered Password"; $message = "Please use this password to login " . $password; $headers = "From : vivek@codingcyber.com"; if(mail($to, $subject, $message, $headers)){ echo "Your Password has been sent to your email id"; }else{ echo "Failed to Recover your password, try again"; } }
The full source code for recover password by email.
<?php require_once('connect.php'); require('config.php'); require('PHPMailer/PHPMailerAutoload.php'); if(isset($_POST) & !empty($_POST)){ $email = mysqli_real_escape_string($connection, $_POST['email']); $sql = "SELECT * FROM `login` WHERE email = '$email'"; $res = mysqli_query($connection, $sql); $count = mysqli_num_rows($res); if($count == 1){ $r = mysqli_fetch_assoc($res); $password = $r['password']; $to = $r['email']; $subject = "Your Recovered Password"; $message = "Please use this password to login " . $password; $headers = "From : admin@phpflow.com"; if(mail($to, $subject, $message, $headers)){ echo "Your Password has been sent to your email id"; }else{ echo "Failed to Recover your password, try again"; } }else{ echo "Email does not exist in database"; } } ?> <!DOCTYPE html> <html> <head> <title>Forgot Password in PHP & MySQL</title> <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> </head> <body> <div class="container"> <?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?> <?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?> <form id="register-form" role="form" autocomplete="off" class="form" method="post"> <div class="form-group"> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-envelope color-blue"></i></span> <input id="email" name="email" placeholder="email address" class="form-control" type="email"> </div> </div> <div class="form-group"> <input name="recover-submit" class="btn btn-lg btn-primary btn-block" value="Reset Password" type="submit"> </div> <input type="hidden" class="hide" name="token" id="token" value=""> </form> </div> </body> </html>
We have connected the MySQLi database with PHP using mysqli_connect()
method. We have also created forgot password form using bootstrap 4.Also send forgot email using PHP mailer.
This tutorial helps integrate a PHP SDK with Laravel. We'll install aws-php-sdk into laravel application and access all aws services… Read More
in this quick PHP tutorial, We'll discuss php_eol with examples. PHP_EOL is a predefined constant in PHP and represents an… Read More
This Laravel tutorial helps to understand table Relationships using Elequonte ORM. We'll explore laravel table Relationships usage and best practices… Read More
We'll explore different join methods of Laravel eloquent with examples. The join helps to fetch the data from multiple database… Read More
in this Laravel tutorial, We'll explore valet, which is a development environment for macOS minimalists. It's a lightweight Laravel development… Read More
I'll go through how to use soft delete in Laravel 10 in this post. The soft deletes are a method… Read More
View Comments
nice information
Want to Recover ID Password.
You can recover ID using email(if its not userid)
How to recover it from myphpadmin without this process?
you edit row of a mysql table, select md5 as a encrypt method and save row