db.sql
Database file run in your MySQL to create database and add data in table.
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(240) NOT NULL,
`email` varchar(240) NOT NULL,
`password` varchar(240) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
db.php
Edit this file as per your database credentials.
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
$connection = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>
index.php
Contains PHP code, check user, validate email, create encrypted string to reset password with userid and add some numbers to make it unidentified.
<?php
if($_POST['action']=="password")
{
$email = mysqli_real_escape_string($connection,$_POST['email']);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) // Validate email address
{
$message = "Invalid email address please type a valid email!!";
}
else
{
$query = "SELECT id FROM users where email='".$email."'";
$result = mysqli_query($connection,$query);
$Results = mysqli_fetch_array($result);
if(count($Results)>=1)
{
$encrypt = md5(1290*3+$Results['id']);
$message = "Your password reset link send to your e-mail address.";
$to=$email;
$subject="Forget Password";
$from = 'info@phpgang.com';
$body='Hi, <br/> <br/>Your Membership ID is '.$Results['id'].' <br><br>Click here to reset your password http://demo.phpgang.com/login-signup-in-php/reset.php?encrypt='.$encrypt.'&action=reset <br/> <br/>--<br>PHPGang.com<br>Solve your problems.';
$headers = "From: " . strip_tags($from) . "\r\n";
$headers .= "Reply-To: ". strip_tags($from) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to,$subject,$body,$headers);
}
else
{
$message = "Account not found please signup now!!";
}
}
}
?>
Execution if this code send an email (used simple mail() function you can also use SMTP) with a confirmation link which redirect you to reset.php.
reset.php
Contains PHP code, get encrypted string validate it and show you 2 input password boxes and to enter your new password.
<?php
include('db.php');if(isset($_GET['action']))
{
if($_GET['action']=="reset")
{
$encrypt = mysqli_real_escape_string($connection,$_GET['encrypt']);
$query = "SELECT id FROM users where md5(90*13+id)='".$encrypt."'";
$result = mysqli_query($connection,$query);
$Results = mysqli_fetch_array($result);
if(count($Results)>=1)
{
}
else
{
$message = 'Invalid key please try again. <a href="http://demo.phpgang.com/login-signup-in-php/#forget">Forget Password?</a>';
}
}
}
elseif(isset($_POST['action']))
{
$encrypt = mysqli_real_escape_string($connection,$_POST['action']);
$password = mysqli_real_escape_string($connection,$_POST['password']);
$query = "SELECT id FROM users where md5(90*13+id)='".$encrypt."'";
$result = mysqli_query($connection,$query);
$Results = mysqli_fetch_array($result);
if(count($Results)>=1)
{
$query = "update users set password='".md5($password)."' where id='".$Results['id']."'";
mysqli_query($connection,$query);
$message = "Your password changed sucessfully <a href=\"http://demo.phpgang.com/login-signup-in-php/\">click here to login</a>.";
}
else
{
$message = 'Invalid key please try again. <a href="http://demo.phpgang.com/login-signup-in-php/#forget">Forget Password?</a>';
}
}
else
{
header("location: /login-signup-in-php");
}
?>
Used jQuery to match re-entered password
<script>
function mypasswordmatch()
{
var pass1 = $("#password").val();
var pass2 = $("#password2").val();
if (pass1 != pass2)
{
alert("Passwords do not match");
return false;
}
else
{
$( "#reset" ).submit();
}
}
</script>
No comments:
Post a Comment