Mẫu đăng nhập PHP

Trong hướng dẫn trước, bạn đã học cách tạo biểu mẫu cho phép người dùng đăng ký tài khoản. Sau khi người dùng đăng ký thành công, bạn chuyển hướng họ đến trang đăng nhập để họ có thể sử dụng tên người dùng và mật khẩu của mình để đăng nhập

Trang đăng nhập sẽ chứa một biểu mẫu bao gồm đầu vào tên người dùng và mật khẩu và nút đăng nhập như sau

Để đăng nhập, người dùng cần nhập tên người dùng và mật khẩu và nhấp vào nút đăng nhập

Nếu tên người dùng và mật khẩu trùng khớp, bạn có thể chuyển hướng chúng đến trang được bảo vệ bằng mật khẩu. Nếu không, bạn chuyển hướng người dùng trở lại trang đăng nhập với thông báo lỗi

Lưu ý rằng sẽ an toàn hơn khi đưa ra một thông báo chung [tên người dùng hoặc mật khẩu không hợp lệ] khi tên người dùng hoặc mật khẩu không khớp

Tạo biểu mẫu đăng nhập

Đầu tiên, tạo trang

Login

Username:
Password:
Login Register

Code language: PHP [php]

Biểu mẫu đăng nhập gửi tới

Login

Username:
Password:
Login Register

Code language: PHP [php]
0

Vì hàm

if [is_post_request[]] { // ... }

Code language: PHP [php]
1 không tồn tại nên chúng ta cần định nghĩa nó

Định nghĩa hàm login[]

Hàm

if [is_post_request[]] { // ... }

Code language: PHP [php]
1 chấp nhận tên người dùng và mật khẩu và trả về true nếu chúng hợp lệ. Logic của hàm

if [is_post_request[]] { // ... }

Code language: PHP [php]
1 như sau

  • Đầu tiên, tìm tên người dùng trong bảng

    [$inputs, $errors] = filter[$_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]];

    Code language: PHP [php]
    2. Nếu người dùng tồn tại, chuyển sang bước 2
  • Thứ hai, xác minh xem mật khẩu có khớp không
  • Thứ ba, nếu tên người dùng không tồn tại hoặc mật khẩu không khớp, hãy đưa ra thông báo lỗi

Để tìm người dùng từ bảng

[$inputs, $errors] = filter[$_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]];

Code language: PHP [php]
2 theo tên người dùng, bạn có thể xác định hàm

[$inputs, $errors] = filter[$_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]];

Code language: PHP [php]
4 trong tệp

[$inputs, $errors] = filter[$_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]];

Code language: PHP [php]
5

Login

Username:
Password:
Login Register

Code language: PHP [php]
1

Nếu tên người dùng tồn tại trong bảng

[$inputs, $errors] = filter[$_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]];

Code language: PHP [php]
2, hàm

[$inputs, $errors] = filter[$_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]];

Code language: PHP [php]
4 trả về một mảng kết hợp có hai phần tử có khóa là tên người dùng và mật khẩu. Nếu không, nó trả về false

Vì bạn lưu trữ hàm băm mật khẩu trong cơ sở dữ liệu, nên bạn cần sử dụng hàm

[$inputs, $errors] = filter[$_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]];

Code language: PHP [php]
8 tích hợp để khớp mật khẩu đơn giản với hàm băm

Hàm

[$inputs, $errors] = filter[$_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]];

Code language: PHP [php]
9 trả về true nếu mật khẩu văn bản thuần túy khớp với hàm băm hoặc false nếu ngược lại

Nếu cả

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
0 và

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
1 khớp nhau, bạn có thể đăng nhập người dùng. Để làm điều đó, bạn cần đặt một giá trị trong

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
2 chẳng hạn

Login

Username:
Password:
Login Register

Code language: PHP [php]
2

Trong các yêu cầu tiếp theo, bạn có thể kiểm tra biến

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
2 để xem người dùng có tên người dùng hiện đang đăng nhập hay không. Ví dụ

Login

Username:
Password:
Login Register

Code language: PHP [php]
3

Đây là hàm

if [is_post_request[]] { // ... }

Code language: PHP [php]
1 hoàn chỉnh

Login

Username:
Password:
Login Register

Code language: PHP [php]
4

Lưu ý rằng bạn nên gọi hàm

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
5 để tạo id phiên mới nếu khi người dùng bắt đầu đăng nhập. Nó giúp ngăn chặn cuộc tấn công cố định phiên

Phần sau định nghĩa hàm

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
6 trong src/auth. php, trả về true nếu người dùng hiện đang đăng nhập

Login

Username:
Password:
Login Register

Code language: PHP [php]
5

Nếu người dùng chưa đăng nhập, bạn có thể chuyển hướng họ đến trang đăng nhập. trang php. Phần sau định nghĩa hàm

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
7 chuyển hướng đến thông tin đăng nhập. trang php nếu người dùng hiện tại chưa đăng nhập

Login

Username:
Password:
Login Register

Code language: PHP [php]
6

Và bạn có thể gọi hàm

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
7 ở đầu bất kỳ trang nào yêu cầu đăng nhập

Ví dụ, bạn có thể gọi nó trong trang

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
9 như thế này

Login

Username:
Password:
Login Register

Code language: PHP [php]
7

Đăng xuất người dùng

Để đăng xuất người dùng, bạn cần xóa giá trị bạn đã đặt khi đăng nhập và chuyển hướng đến thông tin đăng nhập. trang php

Trong hàm

if [is_post_request[]] { // ... }

Code language: PHP [php]
1, bạn thêm tên người dùng vào biến

if [$errors] { redirect_with['login.php', [ 'errors' => $errors, 'inputs' => $inputs ]]; }

Code language: PHP [php]
2. Do đó, bạn cần gỡ bỏ nó để đăng xuất người dùng

Phần sau định nghĩa hàm

Login

Username:
Password:
Login Register

Code language: PHP [php]
8

Phần sau định nghĩa hàm

Login

Username:
Password:
Login Register

Code language: PHP [php]
9

Tạo liên kết đăng xuất

Khi người dùng đăng nhập thành công, họ sẽ được chuyển hướng đến

if [is_post_request[]] { // ... }

Code language: PHP [php]
4

Trên

if [is_post_request[]] { // ... }

Code language: PHP [php]
4, bạn có thể hiển thị thông báo chào mừng cũng như liên kết đăng xuất như thế này

Chủ Đề