目次
yotakuの開発ログ(1)、yotakuの開発ログ
ホームページ バックエンド開発 PHPチュートリアル Yotakuの開発ログ(1)、yotaku開発ログ_PHPチュートリアル

Yotakuの開発ログ(1)、yotaku開発ログ_PHPチュートリアル

Jul 12, 2016 am 09:03 AM
vbs

yotakuの開発ログ(1)、yotakuの開発ログ

2015-12-18 21:17:46

私は数日間続けて ThinkPHP フレームワークを観察してきましたが、今ではロールベースのユーザー アクセス制御があることがわかりました。

関連するコードは次のとおりです:

データベース

ユーザーテーブル(管理者)

mg_id mg_name mg_pwd mg_time mg_role_id
0 クリエイティブ 123 2587413547 1
1 ヨタク 123 258744984 4
リーリー

許可テーブル

auth_id (権限ID) auth_name (権限名) auth_pid (親ID) auth_c (コントローラ) auth_a (操作方法) auth_path (フルパス) auth_level (権限レベル) )
100 プロダクトセンター 0 100 0
101 商品の展示 100 マネージャーコントローラー ショー 100-101 1
リーリー

キャラクターシート

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');
        
ログイン後にコピー
//D('Manager')实例化了一个Manager的Model对象
        $manager_info = D('Manager')->find($mg_id);
        $role_id = $manager_info['mg_role_id'];
        
ログイン後にコピー
//(2)根据role_id 获得本身记录信息
        $role_info = D('Role')->find($role_id);
        $auth_ids = $role_info['role_auth_ids'];
        
ログイン後にコピー
//(3)根据$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}
    {$v.auth_id}>      {foreach $auth_infoB as $k2=>$v2}        {if $v2.auth_pid == $v.auth_id}                              {/if}      {/foreach}          
{$v2.auth_name}           
  {/foreach}  

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1081947.htmlTechArticleyotaku的开发日志(1),yotaku开发日志 2015-12-1821:17:46 连续看了几天的ThinkPHP框架,目前看到基于角色的用户访问权限控制。 相关代码如下: 数...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

win11システムでvbsを開くにはどうすればよいですか? win11でvbsを再起動する方法 win11システムでvbsを開くにはどうすればよいですか? win11でvbsを再起動する方法 Jan 31, 2024 pm 11:24 PM

vbsとはVirtual-BasedSecurityの略で、仮想化によるセキュリティ機能です。ただし、Windows 11 システムでは、デフォルトでオフになっています。この機能を使用する必要があるユーザーにとって、それを有効にする方法がわからない場合があります。幸いなことに、Windows ターミナル経由で (管理者として) これを有効にすることができます。ユーザーの便宜のために、今日の Win11 チュートリアルで詳細な手順を共有します。さらに詳しい情報が必要な場合は、当社の Web サイトをご覧ください。 win11でvbsを再起動するチュートリアル 1. まず、タスクバーの左側にあるスタートメニューを右クリックします。 3. 次に、「bcdedit/sethypervisorlaun」と入力します。

Win11のVBS機能を有効にする方法 Win11のVBS機能を有効にする方法 Dec 25, 2023 pm 02:09 PM

vbs を閉じた後に開きたい場合は、コマンド コードを使用して vbs を開くこともできます。vbs を開く方法を見てみましょう。実際は非常に簡単です。 win11vbs を開く方法: 1. まず、「スタート メニュー」をクリックします。 2. 次に「Windows ターミナル」をクリックします。 3. 次に、「bcdedit/sethypervisorlaunchtypeauto」と入力します。 4. 次に、コンピュータを再起動し、スタート メニューを開き、検索バーで「システム情報」を検索します。 5. 次に、「仮想化ベースのセキュリティ」がオンになっているかどうかを確認します。

Windows11 VBS チュートリアル: アプリケーションを正常に閉じる方法? Windows11 VBS チュートリアル: アプリケーションを正常に閉じる方法? Mar 08, 2024 am 11:54 AM

Windows 11 VBS チュートリアル: アプリケーションを正常に閉じる方法? Windows 11 オペレーティング システムを毎日使用していると、複数のアプリケーションを同時に終了する必要がある状況に遭遇することがよくあります。場合によっては、習慣的に閉じるボタンをクリックしたり、タスク マネージャーを使用してアプリケーション プロセスを 1 つずつ終了したりすることがあります。ただし、VBS スクリプト (VisualBasicScript) を使用すると、複数のアプリケーションを一度に効率的に終了できるため、操作がよりスムーズで便利になります。 1.とは

Windows スクリプト ホスト エラー「指定されたファイルが見つかりません」の修正 Windows スクリプト ホスト エラー「指定されたファイルが見つかりません」の修正 Apr 13, 2023 pm 12:22 PM

Windows Script Host は、スクリプトを実行するための環境をユーザーに提供します。コンピュータにログインするとすぐに実行されるスクリプトもあれば、トリガーされたときに実行されるスクリプトもあります。コンピュータにログインしたときに「指定されたファイルが見つかりません」というエラーが表示された場合、この記事は問題のトラブルシューティングに役立ちます。この問題の理由は、マルウェア攻撃、不適切なインストール、一部のファイルが削除されたなど、さまざまです。ここでは、問題を解決できるさまざまな解決策を紹介しますので、早速始めてみましょう。方法 1 – autorun ユーティリティをダウンロードし、vbs エントリを確認します。 ステップ 1 – この Web サイトにアクセスし、右上隅にあるダウンロード アイコンをクリックして保存します。 ステップ 2 – フォルダーをダウンロードした後、

Microsoft は、Windows 11 Dev チャネルで 24H2 バージョン サービス パイプラインをテストしています。VBS を有効にすると、26080.1400 更新プログラムを受け取ります。 Microsoft は、Windows 11 Dev チャネルで 24H2 バージョン サービス パイプラインをテストしています。VBS を有効にすると、26080.1400 更新プログラムを受け取ります。 Mar 19, 2024 pm 01:25 PM

Microsoft は本日、サービス パイプラインの Win1124H2 バージョンをテストするために、DevChannel で 2 つのサービス アップデートをプッシュしました。これらのアップデートには新しいコンテンツは含まれておらず、システムの機能と安定性を評価するためにのみ提供されています。公式の指示によると、開発チャネルのほとんどのユーザーは累積的な更新プログラム 26080.1300 (KB5037139) を受け取りますが、仮想化ベースのセキュリティ (VBS) 機能が有効になっている場合は、ビルド 26080.1400 (KB5037140) を受け取ります。 Microsoft は、Arm64 デバイスは、VBS が有効になっている場合でも、KB5037139 アップデートのみを受け取ることを強調しています。 IT ホーム 注: 仮想化ベースのセキュリティ (VBS) はハードウェア仮想化と Windo を使用します。

VBS 全人コードの使用方法 VBS 全人コードの使用方法 Nov 22, 2023 am 10:05 AM

まず第一に、いたずらやいじめのコードを使用すると、他人に不必要な苦痛や危害を与える可能性があることを明確にする必要があります。悪意のあるコードを作成および実装する前に、よく考えてから行うことをお勧めします。そのような行為は無責任で非倫理的です。 VBS 全人コードの使用方法: 1. 目標を理解する: コードを記述する前に、修正する目標を理解する必要があります; 2. 目標を決定します: スクリプトを通じて達成したい効果を決定します; 3.コード: VBScript を使用してスクリプトを作成します; 4. テストコード: まずは安全な環境でテストします; 5. 実装: テストに問題がなければ実装できます。

vbsとは何のファイルですか vbsとは何のファイルですか Feb 19, 2021 pm 02:43 PM

VBS は、Visual Basic に基づいたスクリプト言語です。VBS の正式名は、「Microsoft Visual Basic Sc​​ript Edition」です。VBS は比較的シンプルで実行可能なため、VBS ファイルを開く前に、VBS のセキュリティとチャネルの信頼性を確認する必要があります。 。

Win11でvbsスクリプトを無効にする方法 Win11でvbsスクリプトを無効にする方法 Jan 02, 2024 pm 11:23 PM

VBS は win11 のデフォルトでオンになっている機能です。この機能をオンにすると、コンピューターのパフォーマンスが約 30% 低下します。これをオフにすることでのみ、より良いゲーム体験を得ることができます。電源を切りますか? 見てみましょう。 win11vbs を終了する方法: 1. まず、[スタート] メニューをクリックします。 2. 次に、上記で「windows powershell」を検索し、管理者として実行します。 3. 開いたら、「bcdedit/sethypervisorlaunchtypeoff」と入力して Enter キーを押します。 4. 最後の実行が完了して再起動したら、シャットダウンできます。

See all articles