Chức năng quên mật khẩu php

Khi người dùng đã tạo tài khoản trên website, nhưng không nhớ mật khẩu để đăng nhập. Giả sử chúng ta đã tạo chức năng đăng nhập với hai thông tin là tên đăng nhậpmật khẩu. Vậy, trong trường hợp này, chúng ta có thể tạo chức năng quên mật khẩu để người dùng có thể tự đổi lại mật khẩu của mình. 

Điều kiện tạo được chức năng quên mật khẩu

Không phải khi nào chúng ta cũng có thể tạo được chức năng quên mật khẩu, hay nói cách khác là chức năng đổi mật khẩu khi không nhớ mật khẩu cũ. Điều kiện tiên quyết để có thể tạo được chức năng này gồm:

1. Ngoài cặp username/ password, hệ thống lưu trữ người dùng phải có cách khác để nhận biết người dùng, ví dụ email, số điện thoại. Trong phạm vi bài viết, mình sẽ giới thiệu phương pháp sử dụng email. Như vậy, email phải là duy nhất cho mỗi người dùng.

2. Hệ thống phải có khả năng gửi thông tin qua phương pháp nhận biết người dùng tương ứng, ví dụ trong trường hợp của mình, hệ thống phải có khả năng gửi được email tự động.

Hướng dẫn từng bước tạo chức năng quên mật khẩu

1. Tạo bảng "reset_pass" trong database dùng để lưu thông tin yêu cầu đổi mật khẩu, code tạo table:

CREATE TABLE `reset_pass` [
  `id` INT[11] NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `m_email` varchar[100] COLLATE utf8_unicode_ci NOT NULL,
  `m_token` varchar[256] COLLATE utf8_unicode_ci NOT NULL,
  `m_time` bigint[20] NOT NULL,
  `m_numcheck` tinyint[4] NOT NULL DEFAULT '0'
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

2. Tại trang đăng nhập, hiển thị nút "quên mật khẩu"

Nhấn vào đây để tiến hành đặt lại mật khẩu

Trong đó:

{email} = mã hóa base64 của email nhận được ở bước 1. Các bạn có thể dùng hàm base64_encode[$email] của php.

{key} = chuỗi ký tự ngẫu nhiên đã tạo tại bước 3.

Xử lý form đặt lại mật khẩu mới

Chúng ta tiếp tục thực hiện file "resetPassword.php". File này cho phép người dùng đặt lại mật khẩu mới. Mình xin trình bày cách hoạt động của file này như sau:

1. Lấy địa chỉ email và key thông qua phương thức GET.

Bài Viết Liên Quan

Chủ Đề