Hướng dẫn which method is used for user authentication in php? - phương pháp nào được sử dụng để xác thực người dùng trong php?

bởi Vincy. Sửa đổi lần cuối vào ngày 26 tháng 7 năm 2022.

Xác thực người dùng là một quá trình xác thực người dùng với một số khóa, mã thông báo hoặc bất kỳ thông tin đăng nhập nào khác. Nếu người dùng cung cấp thông tin xác thực chính xác thì quá trình xác thực sẽ thành công.

Sau khi xác thực thành công, người dùng sẽ được phép vào hệ thống với tư cách là người dùng được xác thực.

Trong hướng dẫn này, chúng tôi sẽ tạo một hệ thống xác thực người dùng PHP với cơ sở dữ liệu MySQL. & NBSP; Nó sẽ dễ hiểu mã ví dụ này. Bằng cách đọc bài viết này, bạn sẽ tìm hiểu cách mã xác thực người dùng PHP.

Ngoài ra, tôi đã thêm mã nguồn có thể tải xuống vào cuối bài viết này.

Về ví dụ này

Trong ví dụ xác thực người dùng này, nó có bảng đăng nhập để cho phép người dùng nhập chi tiết đăng nhập của họ. Nó yêu cầu người dùng nhập tên người dùng và mật khẩu của họ để xác thực. Bằng cách gửi các thông tin đăng nhập này, nó sẽ được đăng lên trang PHP.

Trong PHP, nó xác minh chi tiết đã nhập với cơ sở dữ liệu người dùng đã đăng ký. Nó chỉ ra cách chuẩn bị truy vấn cơ sở dữ liệu và thực hiện nó để kiểm tra và xác minh dữ liệu của người dùng với cơ sở dữ liệu.

Khi một trận đấu được tìm thấy, người dùng sẽ được coi là được xác thực và ủy quyền. Sau khi đăng nhập thành công, người dùng được xác thực sẽ được phép nhập vào ứng dụng.

Hướng dẫn which method is used for user authentication in php? - phương pháp nào được sử dụng để xác thực người dùng trong php?

Các bước để tạo hệ thống xác thực đăng nhập người dùng trong PHP

  1. Tạo cơ sở dữ liệu MySQL với bảng người dùng.
  2. Tạo bảng đăng nhập người dùng để gửi chi tiết đăng nhập cho PHP.
  3. Tạo truy vấn để so sánh chi tiết đăng nhập người dùng với cơ sở dữ liệu người dùng MySQL.

1) Tạo cơ sở dữ liệu MySQL với bảng người dùng.

Để tạo một cơ sở dữ liệu và các bảng cơ sở dữ liệu, bạn có thể chạy câu lệnh MySQL Tạo & NBSP; Thay vào đó, bạn có thể đi với bất kỳ máy khách cơ sở dữ liệu nào như SQLYOG, PHPMyAdmin. Tôi đang sử dụng phpmyadmin để tạo cơ sở dữ liệu và cấu trúc bảng được sử dụng cho các ví dụ MySQL.

Trong ví dụ này, tôi đã tạo một cơ sở dữ liệu có tên là pailload & nbsp; để tạo & nbsp; người dùng & nbsp; bảng. Ảnh chụp màn hình sau đây hiển thị cấu trúc bảng của người dùng & nbsp; với dữ liệu.users table. The following screenshot shows the users table structure with data.

Hướng dẫn which method is used for user authentication in php? - phương pháp nào được sử dụng để xác thực người dùng trong php?

2) Tạo bảng đăng nhập người dùng.

Mã HTML sau đây được sử dụng để hiển thị bảng đăng nhập người dùng cho người dùng để nhập chi tiết xác thực của họ. Nó có hai trường đầu vào để lấy tên người dùng và mật khẩu từ người dùng.

Khi người dùng nhập chi tiết đăng nhập của họ và NBSP và đã gửi biểu mẫu, dữ liệu tên người dùng và mật khẩu sẽ được đăng lên PHP để xử lý xác thực với cơ sở dữ liệu MySQL.

Login

Các kiểu này được thêm vào cho các thành phần biểu mẫu xác thực người dùng bằng cách bao gồm tệp CSS. CSS cung cấp một cái nhìn và cảm nhận tối thiểu cho UI xác thực người dùng PHP. Nó chỉ là một bộ xương và có thể được thay đổi dễ dàng cho chủ đề ứng dụng.

body {
	font-family: calibri;
}

.tblLogin {
	border: #95bee6 1px solid;
	background: #d1e8ff;
	border-radius: 4px;
}

.tableheader {
	font-size: 24px;
}

.tableheader td {
	padding: 20px;
}

.tablerow td {
	text-align: center;
}

.message {
	color: #FF0000;
	font-weight: bold;
	text-align: center;
	width: 100%;
}

.login-input {
	border: #CCC 1px solid;
	padding: 10px 20px;
}

.btnSubmit {
	padding: 10px 20px;
	background: #2c7ac5;
	border: #d1e8ff 1px solid;
	color: #FFF;
}

3) Tạo truy vấn để so sánh đầu vào của người dùng với cơ sở dữ liệu.

Trong mã PHP sau, nó kiểm tra độ dài mảng toàn cầu $ _POST trước khi thực hiện khối mã xác thực. Khi biểu mẫu xác thực người dùng được gửi, thì mảng toàn cầu này sẽ chứa các giá trị của các trường đầu vào biểu mẫu.

Mã xác thực PHP bao gồm lớp DataSource ở đầu chương trình. Nó kết nối cơ sở dữ liệu MySQL bằng cách chỉ định các cấu hình để lấy đối tượng kết nối. Nó sử dụng MySQLI với các câu lệnh đã chuẩn bị để thực hiện các truy vấn xác thực.

Sau khi nhận được chi tiết xác thực người dùng trong PHP, nó so sánh dữ liệu biểu mẫu với cơ sở dữ liệu người dùng bằng cách thực thi truy vấn bằng cách sử dụng đối tượng kết nối.

Truy vấn liên kết tên người dùng được nhập bởi người dùng thông qua biểu mẫu HTML. Sau đó, nó xác minh mật khẩu băm bằng mật khẩu đã nhập để trả về kết quả xác thực.

Nếu một trận đấu được tìm thấy, điều đó có nghĩa là người dùng là chính hãng đã đăng ký với hệ thống. Vì vậy, mã xác thực sẽ cho phép người dùng tiến hành thêm.

Bất kể việc xác thực có bị xóa hay không. Dù sao, mã này sẽ thừa nhận người dùng bằng cách hiển thị thành công hoặc cảnh báo dựa trên kết quả của quá trình xác thực.

 0) {
    $isSuccess = 0;
    $conn = mysqli_connect("localhost", "root", "", "user_authentication");
    $userName = $_POST['userName'];
    $sql = "SELECT * FROM users WHERE userName= ?";
    $statement = $conn->prepare($sql);
    $statement->bind_param('s', $userName);
    $statement->execute();
    $result = $statement->get_result();
    while ($row = $result->fetch_assoc()) {
        if (! empty($row)) {
            $hashedPassword = $row["password"];
            if (password_verify($_POST["password"], $hashedPassword)) {
                $isSuccess = 1;
            }
        }
    }
    if ($isSuccess == 0) {
        $message = "Invalid Username or Password!";
    } else {
        header("Location:  ./success-message.php");
    }
}
?>

Chuẩn bị truy vấn cơ sở dữ liệu và liên kết tham số

Để thực hiện các hoạt động cơ sở dữ liệu, mã này sử dụng các statated được chuẩn bị được bảo đảm để thực thi các truy vấn.

Nó tạo ra một đối tượng kết nối bằng cách chỉ định thông tin xác thực cơ sở dữ liệu. Kết nối này được sử dụng để xác thực chi tiết đăng nhập với cơ sở dữ liệu MySQL.

Tập lệnh cơ sở dữ liệu

Nhập tập lệnh cơ sở dữ liệu này trước khi chạy ví dụ này trong môi trường phát triển của bạn.

Tập lệnh SQL này chứa cấu trúc cơ sở dữ liệu người dùng. Ngoài ra, nó cung cấp một bản ghi mẫu để kiểm tra với chi tiết xác thực hợp lệ.

Khi bạn thiết lập ví dụ này trong môi trường của mình, hãy chạy đăng nhập và thử chi tiết đăng nhập bên dưới.run login.php and try below login details.

Tên người dùng: Quản trị viên

Mật khẩu: Quản trị viên

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
  `userId` int(8) NOT NULL,
  `userName` varchar(55) NOT NULL,
  `password` varchar(255) NOT NULL,
  `displayName` varchar(55) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`userId`, `userName`, `password`, `displayName`) VALUES
(1, 'admin', '$2a$10$0FHEQ5/cplO3eEKillHvh.y009Wsf4WCKvQHsZntLamTUToIBe.fG', 'Admin');

--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`userId`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
  MODIFY `userId` int(8) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

Tải xuống

Các bài viết phổ biến

  • Đăng ký người dùng trong PHP với Đăng nhập: Biểu mẫu với MySQL và tải xuống mã
  • Tập lệnh đăng nhập PHP với phiên
  • An toàn Hãy nhớ tôi để đăng nhập bằng Phiên Php và Cookie

Trở lại đầu

Các phương pháp xác thực khác nhau được sử dụng trong PHP là gì?

Phương pháp xác thực.

Ba phương pháp xác thực người dùng là gì?

5 loại xác thực phổ biến..
Xác thực dựa trên mật khẩu.Mật khẩu là phương pháp xác thực phổ biến nhất.....
Xác thực đa yếu tố.....
Xác thực dựa trên chứng chỉ.....
Xác thực sinh trắc học.....
Xác thực dựa trên mã thông báo ..

Xác thực HTTP trong PHP là gì?

Xác thực HTTP nhằm mục đích ngăn chặn mục nhập trái phép vào các ứng dụng web PHP bằng cách bảo vệ các tệp nhạy cảm hoặc điểm cuối bằng tên người dùng và mật khẩu hoặc các ứng dụng có chứa thông tin đăng nhập được mã hóa BASE64.aims at preventing unauthorized entry to PHP web applications by defending sensitive files or endpoints using a username and a password or those containing Base64 encoded credentials.

PHP sử dụng biến nào để xác thực người dùng?

Giải thích: Các biến PHP sử dụng để xác thực người dùng là $ _Server ['PHP_AUTH_USER'] và $ _Server ['PHP_AUTH_PW'].$_SERVER['PHP_AUTH_USER'] and $_SERVER['PHP_AUTH_PW'].