yotaku的开发日志(1),yotaku开发日志_PHP教程
yotaku的开发日志(1),yotaku开发日志
2015-12-18 21:17:46
连续看了几天的ThinkPHP框架,目前看到基于角色的用户访问权限控制。
相关代码如下:
数据库
用户表(管理员)
mg_id | mg_name | mg_pwd | mg_time | mg_role_id |
---|---|---|---|---|
0 | creatint | 123 | 2587413547 | 1 |
1 | yotaku | 123 | 258744984 | 4 |
CREAATE TABLE `sw_manager` ( `mg_id` int(11) NOT NULL AUTO_INCREMENT, `mg_name` varchar(32) NOT NULL, `mg_pwd` varchar(32) NOT NULL, `mg_time` int(10) unsigned NOT NULL COMMENT '时间', `mg_role_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '角色id', PRIMARY KEY (`mg_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
权限表
auth_id(权限ID) | auth_name(权限名称) | auth_pid(父id) | auth_c(控制器) | auth_a(操作方法) | auth_path(全路径) | auth_level(权限级别) |
---|---|---|---|---|---|---|
100 | 产品中心 | 0 | '' | '' | 100 | 0 |
101 | 产品展示 | 100 | ManagerController | show | 100-101 | 1 |
CREATE TABLE `sw_auth` ( `auth_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, `auth_name` varchar(20) NOT NULL COMMENT '权限名称', `auth_pid` smallint(6) unsigned NOT NULL COMMENT'父id', `auth_c` varchar(32) NOT NULL DEFAULT '' COMMENT '控制器', `auth_a` varchar(32) NOT NULL DEFAULT '' COMMENT '操作方法', `auth_path` varchar(32) NOT NULL COMMENT '全路径', `auth_level` tinyint(4) NOT NULL DEFAULT '0' COMMENT '级别', PRIMARY KEY(`auth_id`) ) ENGING-InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
角色表
role_id | role_name | role_auth_ids | role_auth_ac |
---|---|---|---|
0 | 站主 | 1,3,9 | 操作器-控制器,操作器-控制器,... |
1 | 高级管理员 | 1,2,3,9,12 | 操作器-控制器,操作器-控制器,... |
CREATE TABLE `sw_role` ( `role_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, `role_name` varchar(20) NOT NULL COMMENT '角色名称', `role_auth_ids` varchar(128) NOT NULL DEFAULT '' COMMENT '权限id,1,3,..', `role_auth_ac` text COMMENT '控制器2-操作3,控制器1-操作6,...', PRIMARY KEY(`role_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;<br /><br />
数据模拟:
1.权限数据
产品中心(产品展示,最新产品,分类管理,子类管理) 高级管理(用户留言,留言簿,产品订购,文件管理) 系统管理(基本设置,样式管理,首页设置,管理员列表)
<span class="zhushi">顶级权限</span> insert into sw_auth values ( 100,'产品中心',0,'','',100,0 ); insert into sw_auth values ( 101,'高级管理',0,'','',101,0 ); insert into sw_auth values ( 102,'系统管理',0,'','',102,0 ); insert into sw_auth values ( 103,'权限管理',0,'','',103,0 ); <span class="zhushi">次级权限</span> insert into sw_auth values ( 104,'产品展示',100,'Goods','show','100-104',1 ); insert into sw_auth values ( 105,'最新产品',100,'Goods','showlist','100-105',1 ); insert into sw_auth values ( 106,'分类管理',100,'Goods','cate','100-106',1 ); insert into sw_auth values ( 107,'用户留言',101,'Goods','words','101-107',1 ); insert into sw_auth values ( 108,'留言簿', 101,'Goods','wordsbook','101-108',1 ); insert into sw_auth values ( 109,'基本设置',102,'Goods','set','102-109',1 ); insert into sw_auth values ( 110,'样式管理',102,'Goods','css','102-110',1 ); insert into sw_auth values ( 111,'用户列表',103,'Goods','userlist','103-111',1 ); insert into sw_auth values ( 112,'角色管理',103,'Goods','role','103-112',1 ); insert into sw_auth values ( 113,'权限列表',103,'Goods','auth','103-113',1 );
2.角色数据
sw_role 站主 所有权限(103,104,105,106,107,108,109) 管理员 部分权限(104,105,109) 版主 部分权限(103,108)
<span class="zhushi">角色</span> insert into sw_role values (10,'站主','100,101,102,103,104,105,106,107,108,109,110,111,112,113','Goods-show,Goods-showlist,Goods-cate,Goods-words,Goods-wordsbook,Goods-set,Goods-css'); insert into sw_role values (11,'管理员','100,102,104,105,109','Goods-showlist,Goods-cate,Goods-css'); insert into sw_role values (12,'版主','100,101,103,106,108,113','Goods-show,Goods-set');
3.流程说明
Index控制器内 获取用户的角色id,进而获得角色权限 进行判断是否展现数据 Index控制器--->left方法--->left.html模板 Index控制器
//(1)根据用户id获取本身记录信息$mg_id = session('admin_id');
$manager_info = D('Manager')->find($mg_id); $role_id = $manager_info['mg_role_id'];
$role_info = D('Role')->find($role_id); $auth_ids = $role_info['role_auth_ids'];
$auth_infoA = D('Auth')->where("auth_level=0 and auth_id in($auth_ids)")->select();
$auth_infoB = D('Auth')->where("auth_level=1 and auth_id in($auth_ids)")->select();
$this->assign('auth_infoA',$auth_infoA); $this->assign('auth_infoB',$auth_infoB);
$this->assign('auth_info',$auth_info); $this->display();
4.模板 left.html
{foreach $auth_infoA as $k=>$v}background={$smarty.const.ADMIN_IMG_URL}/menu_bt.jpg >{$v.auth_id}) href="javascript:void(0);">{$v.auth_name} |
![]() | {$v2.auth_name} |

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wenn Sie vbs nach dem Schließen öffnen möchten, können Sie es auch mit dem Befehlscode öffnen. Schauen wir uns an, wie man vbs öffnet. So öffnen Sie win11vbs: 1. Zuerst klicken wir auf das „Startmenü“. 2. Klicken Sie dann auf „Windows-Terminal“. 3. Geben Sie dann „bcdedit/sethypervisorlaunchtypeauto“ ein. 4. Starten Sie dann den Computer neu, öffnen Sie das Startmenü und suchen Sie in der Suchleiste nach „Systeminformationen“. 5. Überprüfen Sie anschließend, ob die „virtualisierungsbasierte Sicherheit“ aktiviert ist.

vbs ist die Abkürzung für Virtual-BasedSecurity, eine auf Virtualisierung basierende Sicherheitsfunktion. In Windows 11-Systemen ist es jedoch standardmäßig deaktiviert. Benutzer, die diese Funktion verwenden müssen, wissen möglicherweise nicht, wie sie sie aktivieren können. Glücklicherweise können wir es über Windows Terminal (als Administrator) aktivieren. Zur Vereinfachung der Benutzer werden wir im heutigen Win11-Tutorial detaillierte Schritte vorstellen. Wenn Sie weitere Informationen benötigen, besuchen Sie bitte unsere Website. Tutorial zum Neustart von VBS in Win11 1. Zuerst klicken wir mit der rechten Maustaste auf das Startmenü auf der linken Seite der Taskleiste. 3. Geben Sie dann bcdedit/sethypervisorlaun ein

Windows 11 VBS-Tutorial: Wie schließe ich Anwendungen ordnungsgemäß? Bei der täglichen Nutzung des Betriebssystems Windows 11 kommt es häufig vor, dass wir mehrere Anwendungen gleichzeitig schließen müssen. Manchmal klicken wir gewohnheitsmäßig auf die Schaltfläche „Schließen“ oder verwenden den Task-Manager, um Anwendungsprozesse einzeln zu beenden. Durch die Verwendung von VBS-Skripten (VisualBasicScript) können jedoch mehrere Anwendungen gleichzeitig effizienter geschlossen werden, wodurch der Vorgang reibungsloser und bequemer wird. 1.Was ist

Windows Script Host bietet Benutzern eine Umgebung zum Ausführen von Skripts. Einige Skripte werden ausgeführt, sobald Sie sich bei Ihrem Computer anmelden, andere werden möglicherweise ausgeführt, wenn Sie sie auslösen. Wenn Sie sich bei Ihrem Computer anmelden und dann die Fehlermeldung „Das System kann die angegebene Datei nicht finden“ finden, hilft Ihnen dieser Artikel bei der Behebung des Problems. Nun, die Gründe für dieses Problem können unterschiedlich sein, z. B. ein Malware-Angriff oder eine unsachgemäße Installation oder das Löschen einiger Dateien usw. Hier haben wir verschiedene Lösungen, mit denen Sie Ihr Problem lösen können, also fangen wir an! Methode 1 – Laden Sie das Autorun-Dienstprogramm herunter und überprüfen Sie die VBS-Einträge. Schritt 1 – Gehen Sie zu dieser Website und klicken Sie auf das Download-Symbol in der oberen rechten Ecke und speichern Sie. Schritt 2 – Nach dem Herunterladen des Ordners

Zunächst muss klar sein, dass die Verwendung von Streichen oder Mobbing-Codes andere unnötig belasten oder schädigen kann. Es wird empfohlen, zweimal darüber nachzudenken, bevor man irgendeine Form von Schadcode schreibt und implementiert. Ein solches Verhalten ist unverantwortlich und unethisch. So verwenden Sie den gesamten Personencode von vbs: 1. Verstehen Sie das Ziel: Bevor Sie den Code schreiben, müssen Sie das zu korrigierende Ziel verstehen: Bestimmen Sie, welchen Effekt Sie mit dem Skript erzielen möchten Code: Verwenden Sie VBScript, um das Skript zu schreiben. 4. Testen Sie den Code: Testen Sie ihn zuerst in einer sicheren Umgebung. 5. Implementierung: Wenn beim Test kein Problem auftritt, kann er implementiert werden.

Microsoft hat heute zwei Service-Updates auf DevChannel veröffentlicht, mit dem Ziel, die Win1124H2-Version der Service-Pipeline zu testen. Diese Updates enthalten keine neuen Inhalte und werden ausschließlich zur Bewertung der Systemfunktionalität und -stabilität bereitgestellt. Den offiziellen Anweisungen zufolge erhalten die meisten Benutzer im Dev-Kanal das kumulative Update 26080.1300 (KB5037139). Wenn jedoch die Funktion „Virtualisierungsbasierte Sicherheit“ (VBS) aktiviert ist, erhalten sie Build 26080.1400 (KB5037140). Microsoft betont, dass Arm64-Geräte nur das Update KB5037139 erhalten, auch wenn sie VBS aktiviert haben. IT Home Hinweis: Virtualisierungsbasierte Sicherheit (VBS) nutzt Hardware-Virtualisierung und Windo

VBS ist eine auf Visual Basic basierende Skriptsprache. Da VBS relativ einfach und machbar ist, müssen Sie die Sicherheit von VBS und die Glaubwürdigkeit des Kanals sicherstellen, bevor Sie eine VBS-Datei öffnen .

Win11 aktiviert standardmäßig eine VBS-Systemschutzfunktion. Tests zufolge kann das Ausschalten dieser Funktion die Systemleistung um fast 30 % verbessern. Daher ist es für Gamer sehr gut geeignet, sie zu deaktivieren. So schließen Sie win11vbs: 1. Klicken Sie zunächst unten auf „Startmenü“. 2. Suchen Sie dann oben nach „Windows PowerShell“ und klicken Sie auf „Als Administrator ausführen“. 3. Geben Sie nach dem Öffnen „bcdedit/sethypervisorlaunchtypeoff“ ein " und drücken Sie die Eingabetaste, um auszuführen. 4. Nachdem der Vorgang abgeschlossen ist, starten Sie den Computer neu, um vbs zu schließen.
