Hướng dẫn php forgot password send email - php quên mật khẩu gửi email

Hướng dẫn php forgot password send email - php quên mật khẩu gửi email

Xin chào Dev,

Đây là một hướng dẫn ngắn về cách quên mật khẩu Gửi thư trong PHP ?.Chúng tôi sẽ giúp bạn đưa ra ví dụ về gửi liên kết lại liên kết mật khẩu Php.Bạn có thể hiểu một khái niệm về ví dụ về Gửi quên mật khẩu qua thư hoặc tin nhắn trong PHP.Bài viết này đi vào chi tiết trên email gửi lại liên kết mật khẩu PHP.

Bài viết này sẽ cung cấp cho bạn một ví dụ đơn giản về email gửi liên kết mật khẩu PHP.Chúng tôi sẽ sử dụng ví dụ đơn giản về hệ thống đặt lại mật khẩu bằng PHP.

Tôi sẽ cung cấp cho bạn một ví dụ đơn giản về việc quên mất mật khẩu (đặt lại) bằng PHP và MySQL.

Vì vậy, chúng ta hãy xem giải pháp gầm gừ:

connection.php


<?php

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "login";

$conn = new mysqli($servername,$username,$password,$dbname);

if($conn->connect_error){

die ('connection faild:'.$conn->connect_error);

}

?>

tạo bảng

CREATE TABLE user (

fullName VARCHAR(50) NOT NULL,

username VARCHAR(255) NOT NULL,

email VARCHAR(255) NOT NULL,

password VARCHAR(50) NOT NULL,

resettoken VARCHAR(50) NOT NULL,

resettokenexp date() NOT NULL,

);

index.php

<?php

session_start();

require ('connection.php');

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>How to Forgot Password send Mail in PHP?</title>

<link href="https://cdn.jsdelivr.net/npm//dist/css/bootstrap.min.css" rel="stylesheet">

<script src="https://cdn.jsdelivr.net/npm//dist/js/bootstrap.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

</head>

<body>

<div class="container-fluid mt-3">

<div class="card" style="height:590px;">

<div class="card-header text-center">

<h3>How to Forgot Password send Mail in PHP? - Nicesnippets.com</h3>

</div>

<div class="card-body">

<nav class="navbar navbar-expand-lg navbar-light bg-light">

<a class="navbar-brand " href="#">Aatmaninfo</a>

<div class="collapse navbar-collapse" id="navbarSupportedContent">

<ul class="navbar-nav me-auto mb-2 mb-lg-0">

<li class="nav-item">

<a class="nav-link" href="#">Home</a>

</li>

<li class="nav-item">

<a class="nav-link" href="#">about us</a>

</li>

<li class="nav-item">

<a class="nav-link" href="#">contect us</a>

</li>

</ul>

</div>

<form class="justify-content-end">

<?php

if (isset($_SESSION['logged_in']) && $_SESSION['logged_in']==TRUE) {

echo $_SESSION['email']." - <a href='logout.php' class='btn btn-danger'>LOGOUT</a>";

}else{

echo "<button type='button' class='btn btn-success m-1' data-bs-toggle ='modal' data-bs-target='#loginModal'>Login</button>

<button type='button' class='btn btn-danger m-1' data-bs-toggle='modal' data-bs-target='#RegisterModal'>Register</button>";

}

?>

</form>

</nav>

<?php

if (isset($_SESSION['logged_in']) && $_SESSION['logged_in']==TRUE) {

echo "<h2 class='text-center mt-5 pt-5'>Welcom to this website</h2>";

}

?>

</div>

</div>

<div class="modal fade" id="loginModal">

<div class="modal-dialog">

<div class="modal-content">

<div class="modal-header">

<h3 class="modal-title" id="loginModalLabel">Login</h3>

<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>

</div>

<form action="registration.php" method="post">

<div class="modal-body">

<div class="mb-3">

<label>Email : </label>

<input type="text" name="email_username" class="form-control" placeholder="Email">

</div>

<div class="mb-3">

<label>Password : </label>

<input type="password" name="password" class="form-control" placeholder="Password">

</div>

<div class="text-end">

<a href="forgotPassword.php" class='btn m-1 text-primary' style="background:transparent;">Forgot Password ?</a>

</div>

<hr class="mt-0">

<div class="text-center">

<input type="submit" name="login" value="Login" class="btn btn-primary">

</div>

</div>

</form>

</div>

</div>

</div>

<div class="modal fade" id="RegisterModal">

<div class="modal-dialog">

<div class="modal-content">

<div class="modal-header">

<h3 class="modal-title" id="RegisterModalLabel">Register</h3>

<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>

</div>

<form action="registration.php" method="post">

<div class="modal-body">

<div class="mb-3">

<label>Full Name : </label>

<input type="text" name="fullName" class="form-control" placeholder="Full Name">

</div>

<div class="mb-3">

<label>User Name : </label>

<input type="text" name="username" class="form-control" placeholder="User Name">

</div>

<div class="mb-3">

<label>Email : </label>

<input type="email" name="email" class="form-control" placeholder="Email">

</div>

<div class="mb-3">

<label>Password : </label>

<input type="password" name="password" class="form-control" placeholder="Password">

</div>

</div>

<div class="modal-footer">

<input type="submit" name="register" value="Register" class="btn btn-primary">

<button type="button" class="btn btn-danger" data-bs-dismiss="modal">Close</button>

</div>

</form>

</div>

</div>

</div>

</div>

</body>

</html>

forgotPassword.php

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Forgot password</title>

<link href="https://cdn.jsdelivr.net/npm//dist/css/bootstrap.min.css" rel="stylesheet">

<script src="https://cdn.jsdelivr.net/npm//dist/js/bootstrap.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

</head>

<body>

<div class="container d-flex justify-content-center mt-5 pt-5">

<div class="card mt-5" style="width:500px">

<div class="card-header">

<h2 class="text-center">Forgot Password</h2>

</div>

<div class="card-body">

<form action="registration.php" method="post">

<div class="mt-4">

<label for="email">Email : </label>

<input type="email" name="email" class="form-control" placeholder="Enter Email">

</div>

<div class="mt-4 text-end">

<input type="submit" name="send-link" class="btn btn-primary">

<a href="index.php" class="btn btn-danger">Back</a>

</div>

</form>

</div>

</div>

</div>

</body>

</html>

GHI CHÚ

Điều này là bắt buộc;Trước hết, hãy mở liên kết này - Phpmailer tải xuống tệp này và được sử dụng trong COD.

registration.php

<?php

require ('connection.php');

session_start();

use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\SMTP;

use PHPMailer\PHPMailer\Exception;

function sendmail($email,$reset_token){

require ('PHPMailer-master/src/PHPMailer.php');

require ('PHPMailer-master/src/Exception.php');

require ('PHPMailer-master/src/SMTP.php');

$mail = new PHPMailer(true);

try {

$mail->isSMTP();

$mail->Host = 'smtp.gmail.com';

$mail->SMTPAuth = true;

$mail->Username = 'your email';

$mail->Password = 'your password';

$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;

$mail->Port = 465;

$mail->setFrom('your email');

$mail->addAddress($email);

$mail->isHTML(true);

$mail->Subject = 'Password Reset link form Aatmaninfo';

$mail->Body = "we got a request form you to reset Password! <br>Click the link bellow: <br>

<a href='http://localhost:8000/updatePassword.php?email=$email&reset_token=$reset_token'>reset password</a>";

$mail->send();

return true;

} catch (Exception $e) {

return false;

}

}

if (isset($_POST['login'])) {

$email_username =$_POST['email_username'];

$password_login =$_POST['password'];

$sql="SELECT * FROM users WHERE email = '$email_username' AND password = '$password_login'";

$result = $conn->query($sql);

if ($row = $result->fetch_assoc()) {

$_SESSION['logged_in']=TRUE;

$_SESSION['email']=$row['email'];

header('location:index.php');

}elseif($row['email'] === $email_username){

echo "

<script>

alert('register your email');

window.location.href='index.php'

</script>";

}else{

echo "

<script>

alert('Enter valid password');

window.location.href='index.php'

</script>";

}

}

if (isset($_POST['register'])) {

$fullName =$_POST['fullName'];

$username =$_POST['username'];

$email =$_POST['email'];

$password =$_POST['password'];

$user_exist_query="SELECT * FROM users WHERE email = '$email' ";

$result = $conn->query($user_exist_query);

if ($result) {

if ($result->num_rows > 0) {

$row = $result->fetch_assoc();

if ($row['email'] === $email) {

echo "

<script>

alert('Email Address Already Exists!');

window.location.href='index.php'

</script>";

}

}else{

$query ="INSERT INTO `users`(`fullName`, `username`, `email`, `password`) VALUES ('$fullName','$username','$email','$password')";

if ($conn->query($query)===TRUE) {

echo "

<script>

alert('Registration Successful.');

window.location.href='index.php'

</script>";

}else{

echo "

<script>

alert('something got wrong !!');

window.location.href='index.php'

</script>";

}

}

}else{

echo "

<script>

alert('query can not run');

window.location.href='index.php'

</script>";

}

}

if (isset($_POST['send-link'])) {

$email = $_POST['email'];

$sql="SELECT * FROM users WHERE email = '$email'";

$result = $conn->query($sql);

if ($result) {

if ($row = $result->fetch_assoc()) {

$reset_token=bin2hex(random_bytes(16));

date_default_timezone_set('Asia/kolkata');

$date = date("Y-m-d");

$sql = "UPDATE users SET resettoken ='$reset_token', resettokenexp = '$date' WHERE email = '$email'";

if (($conn->query($sql)===TRUE) && sendmail($email,$reset_token )===TRUE) {

echo "

<script>

alert('Password reset link send to mail.');

window.location.href='index.php'

</script>";

}else{

echo "

<script>

alert('Something got Wrong');

window.location.href='forgotPassword.php'

</script>";

}

}else{

echo "

<script>

alert('Email Address Not Found');

window.location.href='forgotPassword.php'

</script>";

}

}else{

echo "

<script>

alert('Server Down');

window.location.href='forgotPassword.php'

</script>";

}

}

?>

updatePassword.php

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Upadte Password</title>

<link href="https://cdn.jsdelivr.net/npm//dist/css/bootstrap.min.css" rel="stylesheet">

<script src="https://cdn.jsdelivr.net/npm//dist/js/bootstrap.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

</head>

<body>

<?php

require ('connection.php');

if (isset($_GET['email']) && isset($_GET['reset_token'])) {

date_default_timezone_set('Asia/kolkata');

$date = date("Y-m-d");

$email = $_GET['email'];

$reset_token = $_GET['reset_token'];

$sql="SELECT * FROM users WHERE email = '$email' AND resettoken = '$reset_token' AND resettokenexp = '$date'";

$result = $conn->query($sql);

if ($result) {

if ($result->num_rows == 1) {

echo '

<div class="container d-flex justify-content-center mt-5 pt-5">

<div class="card mt-5" style="width:500px">

<div class="card-header">

<h2 class="text-center">Creat New Password</h2>

</div>

<div class="card-body">

<form method="post">

<div class="mt-2">

<label for="Password">Password : </label>

<input type="password" name="Password" class="form-control" placeholder="Creat New Password">

<input type="hidden" name="email" class="form-control" value='.$email.'>

</div>

<div class="mt-4 text-end">

<input type="submit" name="update" value="update" class="btn btn-primary">

<a href="index.php" class="btn btn-danger">Back</a>

</div>

</form>

</div>

</div>

</div>';

}else{

echo "

<script>

alert('invelid or Expired link');

window.location.href='index.php'

</script>";

}

}

}else{

echo "

<script>

alert('server down!!');

window.location.href='index.php'

</script>";

}

if (isset($_POST['update'])) {

$pass = $_POST['Password'];

echo $pass;

$email = $_POST['email'];

echo $email;

$update = "UPDATE users SET password='$pass',resettoken='NULL',resettokenexp=NULL WHERE email = '$email'";

if ($conn->query($update)===TRUE) {

echo "

<script>

alert('New Password Created Successfully');

window.location.href='index.php'

</script>";

}else{

echo "Error: ".$sql."<br>".$conn->error;

echo "

<script>

alert('Password not updated');

window.location.href='index.php'

</script>";

}

}

?>

</body>

</html>

logout.php

<?php

session_start();

session_unset();

session_destroy();

header("location:index.php");

?>

Output:

Trang đăng ký

Hướng dẫn php forgot password send email - php quên mật khẩu gửi email

Trang đăng nhập

Hướng dẫn php forgot password send email - php quên mật khẩu gửi email

E-mail

Hướng dẫn php forgot password send email - php quên mật khẩu gửi email

Tạo trang mật khẩu mới

Hướng dẫn php forgot password send email - php quên mật khẩu gửi email

Trang chủ

Nó sẽ giúp bạn...

Thích bài viết này?Theo dõi tôi trên Twitter và Facebook.Bạn cũng có thể đăng ký nguồn cấp dữ liệu RSS.