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

Mẫu đăng nhập PHP
Mẫu đăng nhập PHP

Để đă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

Mẫu đăng nhập PHP
Mẫu đăng nhập PHP

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

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4 trong thư mục

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
5

Thứ hai, xác định biểu mẫu đăng nhập với tên người dùng và mật khẩu đầu vào và nút đăng nhập

html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://www.phptutorial.net/app/css/style.css"> <title>Logintitle> head> <body> <main> <form action="login.php" method="post"> <h1>Loginh1> <div> <label for="username">Username:label> <input type="text" name="username" id="username"> div> <div> <label for="password">Password:label> <input type="password" name="password" id="password"> div> <section> <button type="submit">Loginbutton> <a href="register.php">Registera> section> form> main> body> html>

Code language: HTML, XML (xml)

Giống như trang

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
6, bạn có thể sử dụng lại các tệp

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
7 và

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
8 từ thư mục

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
9 và sử dụng hàm

$inputs = []; $errors = [];

Code language: PHP (php)
0 để tải chúng vào trang

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4 như sau

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

Code language: PHP (php)

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

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4. Do đó, bạn có thể kiểm tra xem phương thức yêu cầu HTTP có phải là POST hay không trước khi xử lý biểu mẫu

Để xử lý biểu mẫu, bạn tạo

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4 trong thư mục

$inputs = []; $errors = [];

Code language: PHP (php)
4

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)

Làm thế nào nó hoạt động

Đầu tiên, xác định hai biến để lưu trữ dữ liệu đã được làm sạch và thông báo lỗi

$inputs = []; $errors = [];

Code language: PHP (php)

Thứ hai, kiểm tra xem phương thức yêu cầu HTTP có phải là POST hay không bằng cách sử dụng hàm

$inputs = []; $errors = [];

Code language: PHP (php)
5

if (is_post_request()) { // ... }

Code language: PHP (php)

Thứ ba, làm sạch và xác thực đầu vào của người dùng bằng hàm

$inputs = []; $errors = [];

Code language: PHP (php)
6

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

Code language: PHP (php)

Thứ tư, nếu tên người dùng hoặc mật khẩu không được cung cấp, hãy chuyển hướng người dùng đến trang

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4 bằng cách sử dụng kỹ thuật post-redirect-get (PRG) và đặt

$inputs = []; $errors = [];

Code language: PHP (php)
8 và

$inputs = []; $errors = [];

Code language: PHP (php)
9 trong phiên sử dụng chức năng

if (is_post_request()) { // ... }

Code language: PHP (php)
0

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

Code language: PHP (php)

Thứ năm, gọi hàm

if (is_post_request()) { // ... }

Code language: PHP (php)
1 để xác minh tên người dùng và mật khẩu

Nếu tên người dùng hoặc mật khẩu không khớp, hãy đặt thông báo lỗi bằng phím

if (is_post_request()) { // ... }

Code language: PHP (php)
2 và chuyển hướng người dùng quay lại trang

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4

if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)

Thứ bảy, nếu cả tên người dùng và mật khẩu đều khớp, hãy chuyển hướng người dùng đến trang

if (is_post_request()) { // ... }

Code language: PHP (php)
4

redirect_to('index.php');

Code language: PHP (php)

if (is_post_request()) { // ... }

Code language: PHP (php)
4 là trang được bảo vệ bằng mật khẩu. Điều đó có nghĩa là chỉ những người dùng đã đăng nhập mới có thể truy cập nó—thêm về vấn đề này trong phần tiếp theo

Cuối cùng, lấy

$inputs = []; $errors = [];

Code language: PHP (php)
9 và

$inputs = []; $errors = [];

Code language: PHP (php)
8 từ phiên nếu phương thức yêu cầu HTTP là GET

[$errors, $inputs] = session_flash('errors', 'inputs');

Code language: PHP (php)

Hiển thị dữ liệu đã nhập & thông báo lỗi khi đăng nhập. trang php

if (is_post_request()) { // ... }

Code language: PHP (php)
8 cần thay đổi thành thông tin sau để hiển thị đầu vào của người dùng cũng như thông báo lỗi

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

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

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

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

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

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ụ

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

Code language: PHP (php)
3

Đây là hàm

if (is_post_request()) { // ... }

Code language: PHP (php)
1 hoàn chỉnh

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

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

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

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

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

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

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

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

if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2 trong

if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
3 để đăng xuất người dùng bằng cách xóa

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

Code language: PHP (php)
0 và

if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
5 khỏi biến

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

Code language: PHP (php)
2

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

Code language: PHP (php)
8

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

if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
7 trả về tên người dùng của người dùng hiện đang đăng nhập

require __DIR__ . '/../src/bootstrap.php'; ?> view('header', ['title' => 'Login']) ?>

"login.php" method="post">

Login

"text" name="username" id="username">
"password" name="password" id="password">
"register.php">Register
view('footer') ?>

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

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
0

Khi người dùng nhấp vào liên kết đăng xuất, bạn cần gọi hàm

if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2 để đăng xuất người dùng

Để làm điều đó, bạn cần tạo

redirect_to('index.php');

Code language: PHP (php)
1 trong thư mục

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
5

Trong

redirect_to('index.php');

Code language: PHP (php)
1, bạn cần gọi hàm

if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); }

Code language: PHP (php)
2 như sau

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
1

Chuyển hướng nếu người dùng đã đăng nhập

Nếu người dùng đã đăng nhập và điều hướng đến đăng nhập. php hoặc đăng ký. php, bạn cần chuyển hướng chúng đến chỉ mục. php

Để làm điều đó, bạn có thể thêm đoạn mã sau vào đầu tệp

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
4 và

$inputs = []; $errors = []; if (is_post_request()) { [$inputs, $errors] = filter($_POST, [ 'username' => 'string | required', 'password' => 'string | required' ]); if ($errors) { redirect_with('login.php', ['errors' => $errors, 'inputs' => $inputs]); } // if login fails if (!login($inputs['username'], $inputs['password'])) { $errors['login'] = 'Invalid username or password'; redirect_with('login.php', [ 'errors' => $errors, 'inputs' => $inputs ]); } // login successfully redirect_to('index.php'); } else if (is_get_request()) { [$errors, $inputs] = session_flash('errors', 'inputs'); }

Code language: PHP (php)
6 trong thư mục

$inputs = []; $errors = [];

Code language: PHP (php)
4

Làm cách nào để tạo biểu mẫu đăng nhập trong PHP?

Bước 1- Tạo biểu mẫu đăng nhập HTML PHP. Để tạo một biểu mẫu đăng nhập, hãy làm theo các bước được đề cập bên dưới. .
Bước 2. Tạo mã CSS cho thiết kế trang web. .
Bước 3. Tạo bảng cơ sở dữ liệu bằng MySQL. .
Bước 4. Mở kết nối đến cơ sở dữ liệu MySQL. .
Bước 5 - Tạo phiên đăng xuất. .
Bước 6 - Tạo Mã cho Trang chủ

Làm cách nào để đăng nhập vào người dùng trong PHP?

Bắt đầu. Có một số bước chúng tôi cần thực hiện trước khi tạo hệ thống đăng nhập an toàn của mình. .
Tạo thiết kế biểu mẫu đăng nhập. .
Tạo cơ sở dữ liệu và thiết lập bảng. .
Xác thực người dùng bằng PHP. .
Tạo Trang chủ. .
Tạo trang hồ sơ. .
Tạo tập lệnh đăng xuất

Làm cách nào để kiểm tra đăng nhập trong PHP?

session_start(); Kiểm tra xem $_SESSION["loggedIn" ] (is not) true hay không - Nếu không, hãy chuyển hướng họ đến trang đăng nhập .

Làm cách nào để tạo API đăng nhập trong PHP?

Tạo khung dự án PHP cho API REST của bạn
Định cấu hình cơ sở dữ liệu cho PHP REST API của bạn
Thêm một lớp cổng cho bảng người
Triển khai API PHP REST
Bảo mật API REST PHP của bạn bằng OAuth 2. 0
Thêm xác thực vào PHP REST API của bạn