當前位置:首頁 » 操作系統 » php角色許可權源碼

php角色許可權源碼

發布時間: 2023-09-14 06:23:37

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/www.hzhuti.com/'.$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/ www.hzhuti.com /".$userid.".php");
foreach($bb as $key=>$submenu)
{
echo "<tr><td bgcolor="#D879A7" style="line-height:22px;text-align:center;color:#ffffff;"> nr <font color="#EA6A8D" face="Webdings"></font><b>".$menus[$key]['caption']."</b><br /></td></tr> nr <tr ><td bgcolor="F5E8F1">";
foreach($submenu as $subkey=>$menuitem)
{
$tmparr = explode("|",$menuitem);
echo "<font color="#EA6A8D" face="Webdings">4</font><a href='".$tmparr[1]."' target="mainframe">".$tmparr[0]."</a><br> 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 "<script>alert('編輯保存成功!');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文件就只會顯示這里在的文件,這樣一個基本的後台許可權就完成了。

Ⅱ 授權源碼怎麼使用

授權源碼首先給當前客戶端添加一個許可權值,然後獲取令牌並訪問資源伺服器。

從代碼中可以看到,Oauth2的authorities對應了Security中的角色編碼值。可用通過配置Oauth2客戶端的角色,然後使用表達式clientHasAnyRole對授權進行控制。支持對自己的模板或者整站源碼添加域名授權,支持在線查詢是否為正版授權。

從字面上來看是授權的意思,在之前我們分析了可以通過resourceId和scope進行授權。通過以上分析,原來authorities和scope一樣,都是方法級別的許可權控制。區別在於scope可以通過用戶自己選擇授權客戶端擁有哪些許可權,而authorities是定死的。

相關知識

源授權是一款全新架構的授權系統.採用ThinkPHP 5.0開發。

內置各種強大的功能,郵件管理,騰訊雲簡訊、里雲簡訊等後台強大簡潔,使用方便快捷。

Ⅲ 怎麼修改php微信源碼模塊許可權

一、寫好介面程序 在你的伺服器上上傳好一個介面程序文件 內容如下: FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = " %s 0 "; if(!empty( $keyword )) { $msgType = "tex...

Ⅳ php中用戶許可權的方法

原理很簡單,資料庫中對應用戶的許可權欄位,經常是level,status,allow什麼的,然後一個用戶登錄時提取信息,用戶進行一個應用時判斷許可權等級。根據項目的不同怎麼實現也會不同,基本原理就是這樣。
我現在參與的一個應用原理如下:
載入網站底層程序
載入網站許可權(從資料庫或者緩存中提取,然後寫到靜態變數)等等
(載入用戶信息,根據規范載入用戶許可權到變數)
分析url
載入頻道,分類等等,同時載入它們的許可權(如果許可權不合會自動過濾甚至中止程序,以上也是的)
載入應用(應用也有許可權,等等)
我只做其中的一塊,不然都會暈的。。。。。

Ⅳ 如何破解php源碼授權

:D
Linux下解密方法:
解密ZEND加密後的PHP
先下載/vld-0.8.0(http://derickrethans.nl/vld.php)
#tar -xzf vld-0.8.0.tgz //解壓
#mv vld-0.8.0 vld //重命名
#cd -R vld ../php-4.3.8/ext //拷貝vld目錄到php的解壓目錄下的ext中
#cd php-4.3.8
#rm configure //刪除configure,因為下面的buildconf會重新生成新的configure
#./buildconf //如果出現錯誤,就按提示加上相應的參數.
#./configure --with-mysql --with-apxs2=/usr/www/bin/apxs --enable-vld 重新檢查php
#make 編譯
#make install 安裝
伺服器必須先安裝ZendOptimizer
運行Zend後的文件,查看源代碼就可以看到了.

Ⅵ php中的許可權問題

對於abcd四種許可權的情況,可以使用二進制方式實現:

資料庫中的用戶許可權使用一個位元組整數存儲,這個整數的二進制的最後四位表示是否具有某許可權,假設是按照abcd的方式進行編碼,那麼分別用數值8、4、2、1表示a、b、c、d四個許可權,具有多項許可權的存和,例如同事具有a、b兩個許可權的存12(8+4),所有許可權都具有的存15(8+4+2+1)

判斷許可權的時候使用二進制的與運算,例如:
$prv=6;//從資料庫獲取
if ($prv & 8) {echo '具有a許可權';}
if ($prv & 4) {echo '具有b許可權';}
if ($prv & 2) {echo '具有c許可權';}
if ($prv & 1) {echo '具有d許可權';}

16個許可權一下的都可以使用這樣的方式,存儲的空間佔用少,運算的速度快。

另外你可以使用字元串方式實現:

資料庫裡面直接使用a、abc、ab、acd這樣的字元串存儲許可權,檢測許可權使用strpos函數,例子如下:

$prv='acd';//從資料庫獲取
if (strpos($prv,'a')!==false) {echo '具有a許可權';}
if (strpos($prv,'b')!==false) {echo '具有b許可權';}
if (strpos($prv,'c')!==false) {echo '具有c許可權';}
if (strpos($prv,'d')!==false) {echo '具有d許可權';}

Ⅶ 求 thinkphp rbac 許可權管理系統 源碼

ThinkPHP 官網有RBAC視頻教程。 這里我也說說原理。數據結構是三張表。一張許可權表,一張角色表,一張用戶表。
需求分析:一個系統的每個功能都要驗證許可權,沒有許可權不能訪問。
資料庫實現:許可權表有很多條記錄,記錄了系統的若干許可權。比如:添加商品,刪除商品,修改密碼,查看報表等。
角色表記錄了多個角色,一個角色一條記錄。角色的意思是,比如: 經理,主管,員工,他們能操作的模塊自1然不同。
用戶表就是普通的後台用戶表。

關鍵:讓他們之間有聯系。一個用戶對應一個角色,比如一個公司裡面一個人不可能既是主管,又是經理,這就是一個用戶對應一個角色。一個角色對應對應多個許可權。比如一個主管(主管角色)能發布商品,添加商品,刪除商品。這就是對應多個許可權。

具體實現:
許可權表中包含一個欄位,用來存角色表中角色的id。然後,用戶表中有一個欄位用來保存角色表中角色的id。這就把三個表串起來了。一個連表查詢,就能獲得「一個用戶對應的角色以及所具有的許可權」。

熱點內容
ftpup上傳三個文件 發布:2025-01-25 01:38:15 瀏覽:762
錄音加密忘記 發布:2025-01-25 01:37:29 瀏覽:501
閑魚賣腳本 發布:2025-01-25 01:37:24 瀏覽:157
密碼匯款在什麼區域了兌付 發布:2025-01-25 01:36:49 瀏覽:146
wamp資料庫 發布:2025-01-25 01:36:02 瀏覽:794
安卓通知欄怎麼顯示秒錶 發布:2025-01-25 01:32:47 瀏覽:757
apk反編譯入門 發布:2025-01-25 01:26:43 瀏覽:472
英雄聯盟在哪投訴腳本 發布:2025-01-25 01:26:43 瀏覽:314
php在線統計 發布:2025-01-25 01:26:42 瀏覽:65
手機加密室 發布:2025-01-25 01:25:57 瀏覽:219