File "forgot_password_reset.php"
Full Path: /home/analogde/www/Design/fileman/Fusion/PROD/forgot_password_reset.php
File size: 9.94 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// https://github.com/suresh-pokharel/forgot-password/blob/master/forgot_password_reset.php
require("config_DB.php");
$valide = "";
// on verifie que le lien contient les bonnes infos
if(isset($_GET['key']) && isset($_GET['email']))
{
$key=$_GET['key'];
$email=$_GET['email'];
$check=mysqli_query($connexion,"SELECT * FROM appli_table_forget_password WHERE email='$email' and temp_key='$key'");
//if key doesnt matches
if (mysqli_num_rows($check)!=1)
{
echo "This url is invalid or already been used. Please verify and try again.";
exit;
}
}
else
{
header('location:index.php');
}
//if($_SERVER["REQUEST_METHOD"] == "POST")
if (isset($_POST["submit"]))
{
echo "Bingo...";
// eecc9097dbcad14513b080b96177d21d <=> $Un92pac
// $Azerty007
// traitement à faire
$password = mysqli_real_escape_string( $connexion , $_POST['new_password']);
$message_success="New password has been set for ".$email;
echo $message_success ."<br><br>";
$password_crypted=md5($password);
echo " -----> " .$password ." " .$password_crypted;
//destroy the key from table
mysqli_query( $connexion ,"DELETE FROM appli_table_forget_password where email='$email' and temp_key='$key'");
//update password in database
mysqli_query( $connexion ,"UPDATE appli_table_users set password='$password_crypted' where email='$email'");
// pour afficher le message
$valide = "ok";
}
/*
CREATE TABLE forget_password (
id int(11) NOT NULL AUTO_INCREMENT,
email varchar(200) NOT NULL,
temp_key varchar(200) NOT NULL,
created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
*/
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Bootstrap Sign in Form with Icons</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.3.0/font/bootstrap-icons.css" />
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
<style>
.error{
display: none;
margin-left: 10px;
}
.text-danger{
display: none;
margin-left: 10px;
}
.error_show{
color: red;
margin-left: 10px;
}
.help-block { display: none; }
.form-group.has-error .help-block { display: block; }
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
$(document).ready(function()
{
const togglePassword = document.querySelector("#togglePassword");
const password = document.querySelector("#new_password");
togglePassword.addEventListener("click", function ()
{
// toggle the type attribute
const type = password.getAttribute("type") === "password" ? "text" : "password";
password.setAttribute("type", type);
// toggle the eye icon
this.classList.toggle('fa-eye');
this.classList.toggle('fa-eye-slash');
});
});
</script>
<style>
.login-form {
width: 500px;
margin: 50px auto;
}
.login-form form {
margin-bottom: 15px;
background: #f7f7f7;
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
padding: 30px;
}
.login-form h2 {
margin: 0 0 15px;
}
.form-control, .btn {
min-height: 38px;
border-radius: 2px;
}
.input-group-addon .fa {
font-size: 18px;
}
.btn {
font-size: 15px;
font-weight: bold;
}
.bottom-action {
font-size: 14px;
}
.space { margin:0; padding:0; height:20px; }
.erreur_utilisateur { display: none;
color: red; }
.erreur_password { display: none;
color: red; }
</style>
</head>
<body>
<div class="login-form">
<form id="login_form" action="" method="post">
<header class="login--header login-1--header text-center">
<span class="fa fa-key" style='font-size:48px' ></span>
<h3>Définir le nouveau mot de passe</h3>
<span class="arrow-down login--header__arrow"></span>
</header>
<br>
<br>
<div class="form-group">
<label for="password" class="form-label">Mot de passe</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-lock"></i>
</span>
</div>
<input type="password" class="form-control" name="new_password" id="new_password" placeholder="Mot de passe" autocomplete="nada" >
<span class="input-group-text">
<i class="fa fa-eye" id="togglePassword" style="cursor: pointer"></i>
</span>
<p class="erreur_password"></p>
<div class="row">
<div class="col-sm-6">
<div class="space"></div>
<span id="8char" class="fa fa-times" style="color:#FF0004;"></span> 8 Charactéres mini<br></span>
<span id="ucase" class="fa fa-times" style="color:#FF0004;"></span> Une majuscule mini<br></span>
</div>
<div class="col-sm-6">
<div class="space"></div>
<span id="lcase" class="fa fa-times" style="color:#FF0004;"></span> Une lettre miniscule mini<br>
<span id="num" class="fa fa-times" style="color:#FF0004;"></span> Au moins un chiffre
</div>
<div class="col-sm-6">
<span id="special" class="fa fa-times" style="color:#FF0004;"></span> Un caractére spécial mini
</div>
</div>
</div>
</div>
<div class="form-group">
<label for="password" class="form-label">Confimer le mot de passe</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-lock"></i>
</span>
</div>
<input type="password" class="form-control" title = "plouf"
onpaste="return false" id = "confirm_password" name = "confirm_password" placeholder="Mot de passe" autocomplete="nada" >
</div>
<div class="space"></div>
<span id="pwmatch" class="fa fa-times" style="color:#FF0004;"></span> Passwords Match
<p class="erreur_confirme_password"></p>
</div>
<div class="form-group">
<div class='actions'>
<input type="submit" id = "submit" name = "submit" value="Valider" disabled class="btn btn-primary btn-block" />
</div>
</div>
<?php
if($valide == "ok")
{
?>
<div class="alert alert-success" role="alert">
Votre mot de passe vient d'être mise à jour dans la database.
</div>
<?php
}
?>
<!--
<div class="bottom-action clearfix">
<a href="#" class="float-center">Mot de passe oublié ?</a>
</div>
-->
</form>
<p class="text-center small"><a href="#">Retour ...</a>.</p>
<br>
<br>
</div>
<script>
$("input[type=password]").keyup(function()
{
var ucase = new RegExp(/[A-Z]/);
var lcase = new RegExp(/[a-z]/);
var num = new RegExp(/[0-9]/);
var special = new RegExp(/[^a-zA-Z0-9\-\/]/);
if($("#new_password").val().length >= 8){
$("#8char").removeClass("fa fa-times");
$("#8char").addClass("fa fa-check");
$("#8char").css("color","#00A41E");
}else{
$("#8char").removeClass("fa fa-check");
$("#8char").addClass("fa fa-times");
$("#8char").css("color","#FF0004");
}
/****/
if(ucase.test($("#new_password").val())){
$("#ucase").removeClass("fa fa-times");
$("#ucase").addClass("fa fa-check");
$("#ucase").css("color","#00A41E");
}else{
$("#ucase").removeClass("fa fa-check");
$("#ucase").addClass("fa fa-times");
$("#ucase").css("color","#FF0004");
}
/****/
if(lcase.test($("#new_password").val())){
$("#lcase").removeClass("fa fa-times");
$("#lcase").addClass("fa fa-check");
$("#lcase").css("color","#00A41E");
}else{
$("#lcase").removeClass("fa fa-check");
$("#lcase").addClass("fa fa-times");
$("#lcase").css("color","#FF0004");
}
/****/
if(num.test($("#new_password").val())){
$("#num").removeClass("fa fa-times");
$("#num").addClass("fa fa-check");
$("#num").css("color","#00A41E");
}else{
$("#num").removeClass("fa fa-check");
$("#num").addClass("fa fa-times");
$("#num").css("color","#FF0004");
}
/****/
if(special.test($("#new_password").val())){
$("#special").removeClass("fa fa-times");
$("#special").addClass("fa fa-check");
$("#special").css("color","#00A41E");
}else{
$("#special").removeClass("fa fa-check");
$("#special").addClass("fa fa-times");
$("#special").css("color","#FF0004");
}
/***/
if( $("#new_password").val() != "" && $("#confirm_password").val() != "" )
{
if($("#new_password").val() == $("#confirm_password").val())
{
$("#pwmatch").removeClass("fa fa-times");
$("#pwmatch").addClass("fa fa-check");
$("#pwmatch").css("color","#00A41E");
// Enable #x
$( "#submit" ).prop( "disabled", false );
console.log("TRACE");
}
else
{
$("#pwmatch").removeClass("fa fa-check");
$("#pwmatch").addClass("fa fa-times");
$("#pwmatch").css("color","#FF0004");
$( "#submit" ).prop( "disabled", true );
}
}
});
</script>
</body>
</html>