Bánh mì
- Nhà //
- Quên mật khẩu trong PHP
1 năm Agoby Michael.Galanza2016 By
michael.galanza2016 Hệ thống đăng nhập bảo mật bằng Codeigniter với mã nguồn
Xin chào! Đây là một dự án hệ thống đăng nhập an toàn bằng cách sử dụng Khung Codeigniter PHP. Hệ thống này có thể giúp bạn trong dự án Codeigniter trong tương lai cần bảo mật. Hệ thống đăng nhập này có tính năng đăng nhập/xác thực an toàn bằng cách băm/mã hóa mật khẩu của người dùng. Hệ thống đăng nhập này cũng có một số tính năng liên quan đến các chức năng đăng nhập như đăng ký và đặt lại mật khẩu. Tải về
- Đọc thêm về hệ thống đăng nhập an toàn bằng cách sử dụng codeigniter với mã nguồn about Secure Login System using CodeIgniter with Source Code
- Thêm bình luận mới
- 3837 lượt xem
Đăng ký để quên mật khẩu trong PHP
Chào mừng bạn đến với một hướng dẫn nhanh về cách tạo tập lệnh khôi phục mật khẩu bị lãng quên với PHP và MySQL. Gặp rắc rối với một hệ thống yêu cầu đặt lại mật khẩu thủ công? Hệ thống khôi phục mật khẩu tự động thường liên quan đến 3 bước:
Điều đó bao gồm tổng quan về quy trình và chúng ta hãy đi qua một ví dụ thực tế trong hướng dẫn này - đọc tiếp!
Tôi đã bao gồm một tệp zip với tất cả mã nguồn khi bắt đầu hướng dẫn này, vì vậy bạn không phải sao chép mọi thứ, hoặc nếu bạn chỉ muốn đi thẳng vào.
MỤC LỤC
Tải xuống & ghi chú
Thứ nhất, đây là liên kết tải xuống đến mã ví dụ như đã hứa.
Ghi chú nhanh
- Tạo cơ sở dữ liệu kiểm tra và nhập tệp
1-database.sql
. - Cập nhật cài đặt cơ sở dữ liệu trong
2a-common.php
lên chính bạn. 2b-forgot.php
là trang quên mật khẩu của người Viking và sẽ gửi một liên kết đến người dùng khi gửi. Thay đổi cài đặt email trong B4 thành của riêng bạn.2c-reset.php
là trang xác nhận đặt lại mật khẩu.
Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với toàn bộ thế giới, nếu bạn cần câu trả lời khẩn cấp, vui lòng kiểm tra danh sách các trang web của tôi để nhận trợ giúp lập trình.
Mã hóa ví dụ Tải xuống
Nhấn vào đây để tải xuống mã nguồn, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên đó hoặc sử dụng nó trong dự án của riêng bạn.
Phần 1] Cơ sở dữ liệu
Được rồi, bây giờ chúng ta hãy bắt đầu với một cơ sở dữ liệu đơn giản để xử lý các yêu cầu đặt lại người dùng và mật khẩu.
Bảng người dùng giả
1-database.sql
-- [A] USERS
CREATE TABLE `users` [
`user_id` int[11] NOT NULL,
`user_email` varchar[255] NOT NULL,
`user_name` varchar[255] NOT NULL,
`user_password` varchar[255] NOT NULL
] ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `users`
ADD PRIMARY KEY [`user_id`],
ADD UNIQUE KEY `user_email` [`user_email`],
ADD KEY `user_name` [`user_name`];
ALTER TABLE `users`
MODIFY `user_id` int[11] NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
INSERT INTO `users` [`user_id`, `user_email`, `user_name`, `user_password`] VALUES
[1, '', 'John Doe', '123456'];
Đây chỉ là một bảng người dùng giả mà chúng tôi sẽ sử dụng trong ví dụ này - bạn đã có bảng người dùng của riêng mình ở đâu đó hoặc cảm thấy thoải mái khi được xây dựng trên đầu này.
Bảng đặt lại mật khẩu
1-database.sql
-- [B] PASSWORD RESET
CREATE TABLE `password_reset` [
`user_id` int[11] NOT NULL,
`reset_hash` varchar[64] NOT NULL,
`reset_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
] ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `password_reset`
ADD PRIMARY KEY [`user_id`];
- ________ 9 Người dùng người dùng đã thực hiện yêu cầu mật khẩu quên mật khẩu.
0 - Hash ngẫu nhiên được tạo khi thực hiện yêu cầu đặt lại. Cũng sẽ được gửi đến email người dùng để xác minh; Nếu băm trong liên kết đặt lại giống như trong cơ sở dữ liệu, chúng tôi có thể xác nhận đó là một yêu cầu hợp lệ.-- [B] PASSWORD RESET CREATE TABLE `password_reset` [ `user_id` int[11] NOT NULL, `reset_hash` varchar[64] NOT NULL, `reset_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ] ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `password_reset` ADD PRIMARY KEY [`user_id`];
1 - Thời gian khi yêu cầu được thực hiện, để ngăn chặn spam.-- [B] PASSWORD RESET CREATE TABLE `password_reset` [ `user_id` int[11] NOT NULL, `reset_hash` varchar[64] NOT NULL, `reset_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ] ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `password_reset` ADD PRIMARY KEY [`user_id`];
Phần 2] Quên yêu cầu mật khẩu
Di chuyển, chúng ta hãy xây dựng trang mật khẩu quên sẽ tạo và gửi liên kết đặt lại đến người dùng qua email.
Tập lệnh cơ sở dữ liệu chung
2a-common.php