phpcom權限,php權限控制

本文目錄一覽:

php 權限控制實現方式有幾種

1.PHP5提供了3種訪問方式:

2.分別是一下幾種:

(1)public:可以被毫無限制地訪問,類外部的任何代碼都可以讀寫public屬性,在PHP5之前的版本中,所有的方法和屬性都是public。

(2)private:只在類的內部可見,類中的任何成員和類實例都可以訪問private成員,在所在類之外,不能改變或者讀取private屬性的值,也不能調用private的方法。子類也不能訪問父類的private成員。

(3)protected:能被同類和繼承出的類的方法訪問到。

如果沒有指明,默認均為public。

php後台多用戶權限設置及實現思路

adminconfig.php 這是後台系統中所有文件權限配置。

fun.php 這是一個功能函數

left.php 網站後台根據用戶登錄的ID來加載相對應的功能菜單

op.php 調用adminconfig.php 默認權限文件

opsava.php 保存用戶權限成一個php文件

好了我們先來看看 fun.php文件吧。

. 代碼如下:

?

function findsub($keys ,$userid=’abc’ ) //此函數重要就是為了調用用戶的權限信息

{

include(‘user/’.$userid.’.php’);

foreach($bb as $key=$submenu)

{

foreach($submenu as $subkey=$menuitem)

{

if( $subkey == $keys )

{

return 1;

}

}

}

}

//下面為生成用戶的php權限文件

//寫入

function cache_write($name, $var, $values) {

$cachefile = ‘op/’.$name.’.php’;

$cachetext = “?phprn”.’$’.$var.’=’.arrayeval($values).”rn?”;

if(!swritefile($cachefile, $cachetext))

{

exit(“File: $cachefile write error.”);

}

}

//數組轉換成字串

function arrayeval($array, $level = 0) {

$space = ”;

for($i = 0; $i = $level; $i++) {

$space .= “t”;

}

$evaluate = “Arrayn$space(n”;

$comma = $space;

foreach($array as $key = $val) {

$key = is_string($key) ? ”’.addcslashes($key, ”\’).”’ : $key;

$val = !is_array($val) (!preg_match(“/^-?d+$/”, $val) || strlen($val) 12) ? ”’.addcslashes($val, ”\’).”’ : $val;

if(is_array($val)) {

$evaluate .= “$comma$key = “.arrayeval($val, $level + 1);

} else {

$evaluate .= “$comma$key = $val”;

}

$comma = “,n$space”;

}

$evaluate .= “n$space)”;

return $evaluate;

}

//寫入文件

function swritefile($filename, $writetext, $openmod=’w’) {

if(@$fp = fopen($filename, $openmod)) {

flock($fp, 2);

fwrite($fp, $writetext);

fclose($fp);

return true;

} else {

exit(“File: $filename write error.”);

return false;

}

}

?

adminconfig.php 後台權限配置文件,以一個數組形式保存

. 代碼如下:

?

$menus = array(

‘news’ = array(

‘caption’=’資訊管理’,

‘icon’=’admin/icon_15.gif’,

‘sub’ = array(

‘newsaddtype’ = array(‘caption’ = ‘分類增加’, ‘url’ = ‘news/addtype.php’),

‘newstypemange’ = array(‘caption’ = ‘分類管理’, ‘url’ = ‘news/typemange.php’),

‘newsnewsend’ = array(‘caption’ = ‘發佈資訊’, ‘url’ = ‘news/newsend.php’),

‘newsnewmange’ = array(‘caption’ = ‘資訊管理’, ‘url’ = ‘news/newmange.php’),

‘newscomments’ = array(‘caption’ = ‘評論管理’, ‘url’ = ‘news/comments.php’),

),

),

‘ask’ = array(

‘caption’=’問卷調查’,

‘icon’=’admin/icon_15.gif’,

‘sub’ = array(

‘voteadmin_subject_add’ = array(‘caption’ = ‘添加投票主題’, ‘url’ = ‘vote/admin_subject_add.php’),

‘voteadmin_subject’ = array(‘caption’ = ‘管理投票主題’, ‘url’ = ‘vote/admin_subject.php’),

‘voteadmin_title_add’ = array(‘caption’ = ‘添加投票問題’, ‘url’ = ‘vote/admin_title_add.php’),

‘voteadmin_title’ = array(‘caption’ = ‘管理投票問題’, ‘url’ = ‘vote/admin_title.php’),

‘voteadmin_question_add’ = array(‘caption’ = ‘添加投票答案’, ‘url’ = ‘vote/admin_question_add.php’),

‘voteadmin_question’ = array(‘caption’ = ‘管理投票答案’, ‘url’ = ‘vote/admin_question.php’),

‘voteadmin_system’ = array(‘caption’ = ‘投票初始配置’, ‘url’ = ‘vote/admin_system.php’)

),

),

‘ads’ = array(

‘caption’=’廣告管理’,

‘icon’=’admin/icon_15.gif’,

‘sub’ = array(

‘ada’ = array(‘caption’ = ‘增加廣告’, ‘url’ = ‘ada.php’),

‘adm’ = array(‘caption’ = ‘廣告管理’, ‘url’ = ‘adm.php’),

‘flashadd’ = array(‘caption’ = ‘焦點圖廣告增加’, ‘url’ = ‘flashadd.php’),

‘flashad’ = array(‘caption’ = ‘焦點圖廣告管理’, ‘url’ = ‘flashad.php’)

),

),

‘mange’ = array(

‘caption’=’系統管理員’,

‘icon’=’admin/icon_15.gif’,

‘sub’ = array(

‘adminuser’ = array(‘caption’ = ‘管理員添加’, ‘url’ = ‘adminuser.php’),

‘modpass’ = array(‘caption’ = ‘密碼修改’, ‘url’ = ‘modpass.php’)

),

),

);

?

left.php文件很簡單就是根據用戶登錄後ID讀出權限

. 代碼如下:

?

$userid = $_SESSION[‘adminid’];

include(“op/admincofig.php”);

include(“op/ /”.$userid.”.php”);

foreach($bb as $key=$submenu)

{

echo “trtd bgcolor=”#D879A7″ style=”line-height:22px;text-align:center;color:#ffffff;” nr font color=”#EA6A8D” face=”Webdings”/fontb”.$menus[$key][‘caption’].”/bbr //td/tr nr tr td bgcolor=”F5E8F1″”;

foreach($submenu as $subkey=$menuitem)

{

$tmparr = explode(“|”,$menuitem);

echo “font color=”#EA6A8D” face=”Webdings”4/fonta href='”.$tmparr[1].”‘ target=”mainframe””.$tmparr[0].”/abr nr”;

}

echo “/td/tr nr “;

}

op.php這個文件就是要調用我們的adminconfig.php文件,然後利用fun.php文件中函數把提供過來的數據保存成數組如圖

點擊保存我們調用了opsava.php 文件,代碼如下

. 代碼如下:

?

include(“op/fun.php”);

if( $_POST )

{

$sarray = $_POST ;

cache_write($userid,’bb’,$sarray);//寫入緩存

echo “scriptalert(‘編輯保存成功!’);location=’op.php?userid=”.$userid.”‘;/script”;

}

?

保存成功後文件內容如

. 代碼如下:

?php

$bb=Array

(

‘member’ = Array

(

‘user_search’ = ‘會員升級管理|user_search.php’

),

‘membercy’ = Array

(

‘cyuser_search’ = ‘會員升級管理|cyuser_search.php’,

‘cyuser_search5’ = ‘交友會員|cyuser_search.php?grade=5’

),

‘userid’ = 7,

‘button’ = ‘保存編輯’

)

?

這樣的話我們的left只要加載 7.php文件就只會顯示這裡在的文件,這樣一個基本的後台權限就完成了。

php怎麼開啟com組件

先到PHP.INI中打開COM選項,com.allow_dcom = true 注意: PHP 5.4.5後,com/dotnet 模塊已經成了單獨的擴展,所以需要在PHP.ini中配置extension=php_com_dotnet.dll ,如果PHP VERSION5.4.5 則不需要。

在php網站中用戶權限

4個表

用戶表(用戶信息表)

權限表(設置可以訪問的頁面)

角色表(如果申請用戶的時候有多項選擇的時候添加,沒有則不需要)

用戶權限對應關係表(這個表是用於給每個用戶賦權)

如果用戶訪問頁面的時候,判斷是否存在訪問權限(查用戶權限對應關係表),如果有正常訪問,如果沒有頁面跳轉。不過跳到登錄頁面感覺不太合理,你判斷用戶是否有權限的時候,他應該是登錄狀態,如果再跳到登錄頁面感覺不合理。

判斷是否存在訪問權限可以封裝成公共類,每個頁面初始化的時候都調用這個公共類。可以通過用戶ID進行判斷。

同是普通用戶,那就加標識,判斷的時候再判斷一下標識,然後根據標識進行頁面跳轉。

以上,希望能幫到你。

php權限管理如何實現

可以使用acl控制實現,參考acl全集如下:

1、角色表

角色id – 用戶組id – 特殊權限id(其中特殊權限 用戶組所包含權限)

2、用戶組表

用戶組id – 用戶組信息

3、權限表

權限表id – 權限信息 – 與功能模塊的關係

4、用戶組-權限關聯表

用戶組id – 權限集合

5、特殊權限表

特殊權限id – 權限集合

注意:

1、設置權限的刪除、添加主要圍繞在 用戶組-權限關聯表、特殊權限表。

2、用戶的權限獲取則是驗證登陸的時候通過用戶組和特殊權限獲取權限集合。

3、展示的時候,根據2獲取的權限集合從權限表獲取所有功能模塊的導航菜單。

原創文章,作者:DEWN,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/143671.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
DEWN的頭像DEWN
上一篇 2024-10-22 23:35
下一篇 2024-10-22 23:35

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 如何選擇MySQL服務器文件權限

    MySQL是一種流行的關係型數據庫管理系統。在安裝MySQL時,選擇正確的文件權限是保證安全和性能的重要步驟。以下是一些指導您選擇正確權限的建議。 一、權限選擇 MySQL服務器需…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • iOS開發如何添加權限

    在iOS開發中,為了保護用戶的隱私和安全,應用程序可能需要請求一些權限。 一、請求應用程序權限 應用程序不得在用戶未給予許可的情況下獲取用戶數據。許多iOS系統功能都需要獲得用戶的…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • 怎麼調整docx文件的權限

    docx文件是一種Microsoft Word文檔格式,常用於文檔編輯和共享。在共享文檔時,有可能需要設置文檔的權限以限制其他人的操作,本篇文章將介紹如何調整docx文件的權限。 …

    編程 2025-04-25
  • NGINX權限被拒絕問題

    NGINX是一款常見的Web服務器軟件,但是在使用中常會遇到「permission denied」權限被拒絕的問題。下文將從多個方面介紹本問題和解決方法。 一、系統權限問題 1、檢…

    編程 2025-04-25

發表回復

登錄後才能評論