Hướng dẫn role of php - vai trò của php

  • Trang chủ
  • Hướng dẫn học
  • Học PHP
  • PHP function

Định nghĩa và cách dùng PHP function

PHP function (thường gọi là hàm), có rất nhiều hàm khác nhau được khai báo sẵn trong php, chúng ta chỉ việc gọi và sử dụng, tuy nhiên chúng ta cũng có thể viết những hàm dành riêng cho một tính năng bất kỳ nào đó.

  • Điểm mạnh của function là khả năng tái sử dụng nhiều lần.
  • Function sẽ không thực thi khi load trang, mà được thực thi thông qua việc gọi chúng.

Cấu trúc

Code được thực thi;
}
tên_hàm(); // Gọi function
?>

  • tên_hàm có thể dùng chữ hoặc số, viết thường hay viết hoa, dấu gạch dưới, tuy nhiên chữ cái đầu không được là số.
  • Cách gọi function khá đơn giản, chỉ cần viết lại tên_hàm() là được.

Ví dụ

PHP không phân biệt gọi hàm trước và sau khai báo function, cả 2 cách gọi là như nhau. Cách gọi trên tương tự như sau:
Cách gọi trên tương tự như sau:

PHP function và đối số

  • Đối số cũng được xem là biến số, được dùng để truyền giá trị vào function.
  • Được viết trong dấu ngoặc đơn ngay sau tên_hàm.
  • Một function có thể khai báo nhiều đối số tùy ý, và mỗi đối số được viết cách nhau bởi dấu phẩy.
  • Khi fucntion được gọi, thì với đối số khác nhau sẽ cho ta kết quả khác nhau.

PHP function với 1 đối số

";
}
myFunction("Nguyễn Văn Tý");
myFunction("Trần Văn Tèo");
?>

Nguyễn Văn Tý Trần Văn Tèo
Trần Văn Tèo

PHP function với 2 đối số

";
}
myFunction("Nguyễn Văn Tý", 25);
myFunction("Trần Văn Tèo", 19);
?>

Nguyễn Văn Tý - 25 tuổi Trần Văn Tèo - 19 tuổi
Trần Văn Tèo - 19 tuổi

PHP function với đối số mặc định

Khi sử dụng đối số với phép gán bằng, sẽ cho ta dạng đối số mặc định, khi gọi function mà không truyền đối số sẽ cho ta đối số mặc định.

";
}
myFunction("Nguyễn Văn Tý");
myFunction("Trần Văn Tèo");
myFunction(); // Cách gọi sau sẽ được truyền đối số mặc định.
?>

Nguyễn Văn Tý Trần Văn Tèo Học Web Chuẩn
Trần Văn Tèo
Học Web Chuẩn

PHP function - return giá trị

Để trả về giá trị nào đó của một function, ta sử dụng câu lệnh

7.

Ví dụ

PHP không phân biệt gọi hàm trước và sau khai báo function, cả 2 cách gọi là như nhau. Cách gọi trên tương tự như sau:

PHP function và đối số

Ví dụ

Đây là phần 5 của sê -ri & nbsp; về cách tạo hệ thống quản lý tài khoản người dùng trong PHP. Bạn có thể tìm thấy các phần khác ở đây: Phần 1, Phần 2, & NBSP; Phần 3 & NBSP; và Phần 4.

Nội dung chính

  • Gán quyền cho vai trò
  • Đặt các quyền để làm việc
  • Vai trò và quyền của người dùng là gì?
  • Làm cách nào để đặt quyền của người dùng trong PHP?
  • Các loại vai trò người dùng khác nhau là gì?
  • Người dùng và vai trò là gì?

Định nghĩa về vai trò của người dùng do người dùng xác định vai trò là đối tượng cơ sở dữ liệu nhóm lại với nhau một hoặc nhiều đặc quyền và có thể được gán cho người dùng.Một người dùng được gán một vai trò nhận được tất cả các đặc quyền của vai trò đó.Người dùng có thể có nhiều vai trò.Một phân cấp vai trò cũng được hỗ trợ.A role is a database object that groups together one or more privileges and can be assigned to users. A user that is assigned a role receives all of the privileges of that role. A user can have multiple roles. A role hierarchy is also supported.

Gán quyền cho vai trò

Đặt các quyền để làm việc

Chúng tôi đã hoàn thành việc quản lý tài khoản người dùng quản trị trong phần cuối cũng như vai trò. Trong phần này, chúng tôi sẽ trải qua việc tạo các quyền và gán và không chỉ định các quyền cho vai trò người dùng.roles table. Now we will create a permissions table to hold permissions and a third table called permission_role to hold the information about the relationship between the roles and permissions table.

Tạo hai bảng để có các thuộc tính sau:

Bảng quyền: table: table:

CREATE TABLE `permissions` (
 `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 `name` varchar(255) NOT NULL UNIQUE KEY,
 `description` text NOT NULL
)

PERSISS_ROLE BẢNG: table: table:

CREATE TABLE `permission_role` (
 `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
 `role_id` int(11) NOT NULL,
 `permission_id` int(11) NOT NULL,
 KEY `role_id` (`role_id`),
 KEY `permission_id` (`permission_id`),
 CONSTRAINT `permission_role_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 CONSTRAINT `permission_role_ibfk_2` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`)
)

Trên bảng PERS_Role, vai trò tham chiếu vai trò & nbsp; id trên bảng Vai trò trong khi PERSIISS_ID tham chiếu đến cột & NBSP; ID trên bảng quyền. Để gán quyền cho một vai trò, chúng tôi thực hiện điều đó bằng cách chèn một bản ghi của quyền đó_id đối với vai trò_id trên bảng PERSISS_ROLE và mối quan hệ được thiết lập. Điều này có nghĩa là nếu chúng ta muốn không ký được sự cho phép đó từ vai trò đó, chúng ta chỉ xóa bản ghi của vai trò đó_id so với quyền đó_id trên bảng PERS_ROLE này.permission_role table, the role_id references the role id on the roles table while the permission_id references the permission id column on the permissions table. To assign a permission to a role, we do that by simply inserting a record of that permission_id against the role_id on the permission_role table and the relationship is established. This means if we want to un-assign that permission from that role, we just delete the record of that role_id against that permission_id on this permission_role table.permission_role table, the role_id references the role id on the roles table while the permission_id references the permission id column on the permissions table. To assign a permission to a role, we do that by simply inserting a record of that permission_id against the role_id on the permission_role table and the relationship is established. This means if we want to un-assign that permission from that role, we just delete the record of that role_id against that permission_id on this permission_role table.

Hai dòng cuối cùng của truy vấn SQL ở trên là các ràng buộc đảm bảo & nbsp; rằng khi một vai trò hoặc quyền cụ thể bị xóa, tất cả các mục trong bảng PERSISS_ROLE có ID quyền đó hoặc ID vai trò đó cũng sẽ được tự động xóa bởi cơ sở dữ liệu. Chúng tôi làm điều này bởi vì chúng tôi không muốn bảng PERS_Role giữ thông tin mối quan hệ về vai trò hoặc sự cho phép không còn tồn tại.permission_role table having that permission's id or that role id will also be automatically deleted by the database. We do this because we don't want the permission_role table keeping relationship information about a role or a permission that no longer exists.permission_role table having that permission's id or that role id will also be automatically deleted by the database. We do this because we don't want the permission_role table keeping relationship information about a role or a permission that no longer exists.

Bạn cũng có thể đặt các ràng buộc này theo cách thủ công bằng cách sử dụng phpmyadmin: bạn có thể thực hiện nó trên giao diện chỉ bằng cách chọn bảng PERMISS_ROLE và đi đến tab Cấu trúc Mối quan hệ> và chỉ điền vào các giá trị. Nếu bạn vẫn không thể làm điều này, hãy để lại nhận xét bên dưới và tôi sẽ cố gắng và giúp bạn.permission_role table and going to Relational view > Structure tab and just filling in the values. If you still can't do this, leave a comment below and I'll try and help you out.permission_role table and going to Relational view > Structure tab and just filling in the values. If you still can't do this, leave a comment below and I'll try and help you out.

Bây giờ mối quan hệ đã được thiết lập. & Nbsp;

Hãy tạo một trang để gán quyền cho một vai trò. Trên trang rolelist.php của chúng tôi, chúng tôi liệt kê các vai trò khác nhau với nút 'quyền' cùng với mỗi vai trò. Nhấp vào liên kết này sẽ đưa chúng tôi đến một trang có tên là gertspermissions.php. Hãy tạo tệp đó ngay bên trong thư mục quản trị viên/vai trò.admin/roles folder.admin/roles folder.

assignPermissions.php:::

0

Nhấp vào nút 'quyền' của vai trò dẫn bạn đến trang này. Nhưng ngay bây giờ nếu bạn nhấp vào nó và truy cập trang gán gán này. Trước khi chúng tôi thêm phương thức này, hãy xem xét cách chúng tôi thực sự thực hiện việc gán và không liên quan đến sự cho phép trong mã PHP của chúng tôi.assignPermissions.php page, there is an error message saying getAllPermissions() functions is undefined. Before we add this method, let's go over how we actually implement this assigning and un-assiging of permission in our PHP code.assignPermissions.php page, there is an error message saying getAllPermissions() functions is undefined. Before we add this method, let's go over how we actually implement this assigning and un-assiging of permission in our PHP code.

Khi bạn nhấp vào nút 'Quyền' của một vai trò, bạn sẽ được đưa đến trang gert Nhưng trước khi hiển thị trang quyền gán, chúng tôi sử dụng vai trò & nbsp; id để tìm nạp tất cả các quyền đã được gán cho vai trò đó từ cơ sở dữ liệu. Và sau đó chúng tôi cũng đưa ra tất cả các quyền có sẵn trong bảng quyền. Bây giờ chúng tôi có hai mảng các quyền: những quyền đã được gán cho một vai trò và tất cả các quyền có sẵn trong cơ sở dữ liệu của chúng tôi. Một trước đây là một tập hợp con của cái sau.id of that role. But before displaying the assign permissions page, we use the role id to fetch all permissions that have already been assigned to that role from the database. And then we also bring out all the permissions available in the permissions table. Now we have two arrays of permissions: the ones that have been assigned to a role and all the permissions available in our database. One former is a subset of the latter.id of that role. But before displaying the assign permissions page, we use the role id to fetch all permissions that have already been assigned to that role from the database. And then we also bring out all the permissions available in the permissions table. Now we have two arrays of permissions: the ones that have been assigned to a role and all the permissions available in our database. One former is a subset of the latter.

Việc gán quyền cho một vai trò có nghĩa là thêm sự cho phép từ danh sách các quyền tổng thể vào mảng quyền thuộc về vai trò đó và lưu toàn bộ thông tin này trong bảng PERSISS_ROLE. Việc không chỉ định sự cho phép từ một vai trò có nghĩa là loại bỏ sự cho phép cụ thể đó khỏi danh sách các quyền thuộc về vai trò đó.permission_role table. Un-assigning a permission from a role means removing that particular permission from the list of permissions that belong to that role.permission_role table. Un-assigning a permission from a role means removing that particular permission from the list of permissions that belong to that role.

Logic của chúng tôi là lặp qua một mảng tất cả các quyền có sẵn từ cơ sở dữ liệu, sau đó cho mỗi ID của họ, chúng tôi xác định xem ID đó có nằm trong mảng ID cho các quyền của vai trò không. Nếu nó tồn tại, nó có nghĩa là vai trò đã có quyền đó vì vậy chúng tôi hiển thị nó cùng với hộp kiểm được kiểm tra. Nếu nó không tồn tại, chúng tôi sẽ hiển thị nó cùng với hộp kiểm không được kiểm soát. & NBSP;id, we determine if that id is already in the array of ids for the role's permissions. if it exists, it means the role already has that permission so we display it alongside a checked checkbox. If it doesn't exist, we display it alongside an unchecked checkbox. id, we determine if that id is already in the array of ids for the role's permissions. if it exists, it means the role already has that permission so we display it alongside a checked checkbox. If it doesn't exist, we display it alongside an unchecked checkbox. 

Sau khi mọi thứ đã được hiển thị, nhấp vào hộp kiểm đã kiểm tra có nghĩa là không chỉ định quyền trong khi nhấp vào hộp kiểm không được kiểm soát có nghĩa là gán quyền cho vai trò. Sau khi tất cả việc kiểm tra và không kiểm tra được thực hiện, người dùng sau đó nhấp vào nút 'Lưu quyền' dưới bảng để lưu tất cả các quyền đã được kiểm tra vai trò đó.

Hãy thêm tất cả các chức năng này vào tệp rolelogic.php. Họ đang:

roleLogic.php:::

1

Đặt các quyền để làm việc

Tại thời điểm này, chúng ta có thể xác định vai trò của người dùng là gì và vì vai trò liên quan đến quyền, do đó chúng ta cũng có thể biết quyền của họ.

Bây giờ chúng tôi muốn đặt các quyền này hoạt động: & nbsp; nghĩa là, & nbsp; đảm bảo rằng người dùng quản trị viên được phép chỉ thực hiện những hành động mà anh ta có quyền. Chúng tôi sẽ đạt được điều này bằng cách sử dụng các chức năng phần mềm trung gian. Một phần mềm trung gian về cơ bản là một đoạn mã hoặc một hàm được thực thi trước khi một hành động được thực hiện. Thông thường, chức năng phần mềm trung gian này có thể sửa đổi hành vi của hành động hoặc thực hiện một số kiểm tra có thể sẽ dừng hoàn toàn hành động tùy thuộc vào kết quả kiểm tra.

Chẳng hạn, người dùng có thể có quyền tạo bài, cập nhật-post và xóa-post. Nếu họ đã đăng nhập và họ cố gắng xuất bản một bài đăng, chức năng phần mềm trung gian của chúng tôi kiểm tra trước tiên để xem liệu người dùng này có quyền xuất bản hay không. Nếu họ có quyền này, chức năng phần mềm trung gian của chúng tôi sẽ trả về đúng và bài đăng sẽ được xuất bản. Nếu họ thiếu sự cho phép xuất bản, chức năng phần mềm trung gian của chúng tôi sẽ chuyển hướng họ trở lại bằng một thông báo nói rằng họ không có quyền xuất bản bài đăng. & NBSP;create-post, update-post, and delete-post. If they are logged in and they try to publish a post, our middleware function first checks to see if this user has the publish-post permission. If they have this permission, our middleware function will return true and the post will be published. If they lack the publish-post permission, our middleware function will redirect them back with a message saying that they do not have the permission to publish the post. create-post, update-post, and delete-post. If they are logged in and they try to publish a post, our middleware function first checks to see if this user has the publish-post permission. If they have this permission, our middleware function will return true and the post will be published. If they lack the publish-post permission, our middleware function will redirect them back with a message saying that they do not have the permission to publish the post. 

Chúng tôi sẽ đặt tất cả các chức năng phần mềm trung gian của chúng tôi bên trong một tệp duy nhất có tên Middleware.php. Tạo nó ngay bây giờ trong thư mục & nbsp; admin & nbsp; và dán mã này vào nó:admin and paste this code into it:admin and paste this code into it:

middleware.php:::

2

Câu lệnh IF đầu tiên kiểm tra xem người dùng có đăng nhập không. Nếu người dùng không đăng nhập, họ sẽ được chuyển hướng đến trang chủ. Câu lệnh IF thứ hai kiểm tra xem người dùng có đăng nhập hay không và liệu anh ta/cô ta có vai trò (là quản trị viên) hay không. Nếu người dùng được tìm thấy được đăng nhập và có vai trò, họ sẽ truy cập trang, nếu không, sẽ được chuyển hướng trở lại trang chủ.

Trong mỗi tệp mà bạn muốn hạn chế người dùng không phải là người dùng truy cập, bạn chỉ nên đưa tệp Middleware.php này vào tệp đó. Vì vậy, tất cả các tệp quản trị viên của chúng tôi trong đó chúng tôi không muốn người dùng bình thường truy cập, chúng tôi sẽ đưa tệp này vào đó. Vì vậy, hãy mở tất cả các tệp trong hai thư mục bên trong thư mục quản trị viên là: người dùng, vai trò. Trong mỗi tệp, thêm dòng sau & nbsp; ngay bên dưới bao gồm cho config.php. & Nbsp;admin folder namely: users, roles. In each of the files, add the following line just below the include for config.php. admin folder namely: users, roles. In each of the files, add the following line just below the include for config.php. 

Như vậy:

3

Và điều đó sẽ chuyển hướng bất kỳ người dùng không phải là người cố gắng truy cập trang.

Cũng trong tệp massiderware.php này, chúng tôi đang sử dụng php's in_array () & nbsp; để kiểm tra xem chúng tôi đang thử nghiệm có nằm trong mảng quyền của người dùng đó hay không. . Do đó, hàm trả về true, nếu không nó trả về sai.in_array() to check whether the permission we are testing is in the array of that user's permissions. (When an admin user logs in, we put all their permission in a session variable array called $_SESSION['userPermissions'].) If the current permission is in the array of the user's permissions, it means that that user has that permission and therefore the function returns true, otherwise it returns false.in_array() to check whether the permission we are testing is in the array of that user's permissions. (When an admin user logs in, we put all their permission in a session variable array called $_SESSION['userPermissions'].) If the current permission is in the array of the user's permissions, it means that that user has that permission and therefore the function returns true, otherwise it returns false.

Bây giờ nếu bạn muốn kiểm tra xem người dùng có quyền hay không, hãy nói rằng quyền xuất bản bạn phải làm là gọi phương thức canpublishPost () như thế này:publish-post permission you have to do is call the method canPublishPost() like this:publish-post permission you have to do is call the method canPublishPost() like this:

4

Cũng là một phần mềm trung gian, trước khi chúng tôi cập nhật một bài đăng, trước tiên chúng tôi sẽ gọi hàm phần mềm trung gian canupdatepost (). Nếu chức năng kiểm tra và thấy rằng người dùng không có quyền cập nhật, nó sẽ trả về sai và sau đó chúng tôi có thể chuyển hướng chúng đến trang chủ với một thông báo nói rằng anh ta không được phép cập nhật bài đăng. Như thế này:canUpdatePost() middleware function. If the function checks and sees that the user does not have the update-post permission, it will return false and we can then redirect them to the homepage with a message saying he is not permitted to update the post. Like this:canUpdatePost() middleware function. If the function checks and sees that the user does not have the update-post permission, it will return false and we can then redirect them to the homepage with a message saying he is not permitted to update the post. Like this:

5

Điều tương tự cho các bài viết xuất bản/chưa xuất bản:

6

Bây giờ chúng tôi còn lại phần cuối cùng của hướng dẫn này đang cập nhật hồ sơ người dùng và cũng cung cấp cho người dùng đã đăng ký khả năng xóa tài khoản của chính họ.

Cảm ơn vì đã theo dõi. Nếu bạn có bất cứ điều gì để nói, xin vui lòng bỏ nó trong các ý kiến.

Awa Melvine

Phần tiếp theo: Chỉnh sửa hồ sơ người dùng

Vai trò và quyền của người dùng là gì?

Vai trò người dùng cung cấp cho quản trị viên khả năng kiểm soát những gì người dùng có thể làm trong hệ thống, mà không cần truy cập toàn bộ quản trị viên. Vai trò là một tập hợp các quyền có thể dựa trên chức năng công việc. Quyền được gán cho vai trò và vai trò được gán cho người dùng.

Làm cách nào để đặt quyền của người dùng trong PHP?

Thay đổi quyền cho tệp "test.txt":...

// Đọc và viết cho chủ sở hữu, không có gì cho mọi người khác.Chmod ("test.txt", 0600) ;.

// Đọc và viết cho chủ sở hữu, đọc cho mọi người khác.chmod ("test.txt", 0644) ;.

// Mọi thứ cho chủ sở hữu, đọc và thực hiện cho mọi người khác.Chmod ("test.txt", 0755) ;.

Các loại vai trò người dùng khác nhau là gì?

Có năm loại vai trò người dùng chính trong trường học của bạn, chủ sở hữu, chủ sở hữu, tác giả, chi nhánh và sinh viên chính của trường.the primary owner, owners, authors, affiliates, and students.the primary owner, owners, authors, affiliates, and students.

Người dùng và vai trò là gì?

Định nghĩa về vai trò của người dùng do người dùng xác định vai trò là đối tượng cơ sở dữ liệu nhóm lại với nhau một hoặc nhiều đặc quyền và có thể được gán cho người dùng.Một người dùng được gán một vai trò nhận được tất cả các đặc quyền của vai trò đó.Người dùng có thể có nhiều vai trò.Một phân cấp vai trò cũng được hỗ trợ.A role is a database object that groups together one or more privileges and can be assigned to users. A user that is assigned a role receives all of the privileges of that role. A user can have multiple roles. A role hierarchy is also supported.A role is a database object that groups together one or more privileges and can be assigned to users. A user that is assigned a role receives all of the privileges of that role. A user can have multiple roles. A role hierarchy is also supported.