其他 可以用簡單的方法來解決 在數(shù)據(jù)庫用戶表 添加一個字段來存儲用戶屬性 你可以用1代表管理員 0代表普通用戶 然后 用戶登陸后 判斷是0還是1 從而來控制他們訪問的權(quán)限
主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站開發(fā)、程序開發(fā)、微網(wǎng)站、小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運作于一體,具備承接不同規(guī)模與類型的建設(shè)項目的能力。
?php
$data=array("1"="新聞","2"="產(chǎn)品","3"="留言");
//定義各個權(quán)限的數(shù)據(jù)數(shù)組
$tmp="";
foreach($data?as?$val){
$tmp.=$val;
}
$data["0"]=$tmp;
//合成超級權(quán)限顯示的數(shù)據(jù),合成的語言是方便擴(kuò)展,不用親自去定義超級權(quán)限對應(yīng)的數(shù)據(jù)
$rights=explode(",",$rs['poe']);//分割權(quán)限
foreach($rights?as?$val){
echo?$data[$val];//根據(jù)權(quán)限輸出數(shù)據(jù)
//用數(shù)組輸出方便擴(kuò)展,避免煩人的各種判斷if或switch,你現(xiàn)在需要修改的僅僅是data數(shù)組
}
//說明:0權(quán)限只能單獨寫,不能存在0,2這種形式
?
install.lock文件表示網(wǎng)站已安裝(數(shù)據(jù)完成初始化),沒有這個文件打開網(wǎng)站可能會跳轉(zhuǎn)到安裝界面。
如果你有源碼的話,完全可以通過修改密碼跳過授權(quán)進(jìn)去后臺。但這要看源碼復(fù)雜程度。另外如果后臺功能有授權(quán)用戶權(quán)限問題,那修改就更麻煩了。
如果你掌握了數(shù)據(jù)庫,不如直接在數(shù)據(jù)庫里增加個用戶數(shù)據(jù),賬號密碼和用戶權(quán)限隨便填,難點在于找到密碼加密的方法。
adminconfig.php 這是后臺系統(tǒng)中所有文件權(quán)限配置。
fun.php 這是一個功能函數(shù)
left.php 網(wǎng)站后臺根據(jù)用戶登錄的ID來加載相對應(yīng)的功能菜單
op.php 調(diào)用adminconfig.php 默認(rèn)權(quán)限文件
opsava.php 保存用戶權(quán)限成一個php文件
好了我們先來看看 fun.php文件吧。
. 代碼如下:
?
function findsub($keys ,$userid='abc' ) //此函數(shù)重要就是為了調(diào)用用戶的權(quán)限信息
{
include('user/'.$userid.'.php');
foreach($bb as $key=$submenu)
{
foreach($submenu as $subkey=$menuitem)
{
if( $subkey == $keys )
{
return 1;
}
}
}
}
//下面為生成用戶的php權(quán)限文件
//寫入
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.");
}
}
//數(shù)組轉(zhuǎn)換成字串
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 后臺權(quán)限配置文件,以一個數(shù)組形式保存
. 代碼如下:
?
$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' = '發(fā)布資訊', 'url' = 'news/newsend.php'),
'newsnewmange' = array('caption' = '資訊管理', 'url' = 'news/newmange.php'),
'newscomments' = array('caption' = '評論管理', 'url' = 'news/comments.php'),
),
),
'ask' = array(
'caption'='問卷調(diào)查',
'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'='系統(tǒng)管理員',
'icon'='admin/icon_15.gif',
'sub' = array(
'adminuser' = array('caption' = '管理員添加', 'url' = 'adminuser.php'),
'modpass' = array('caption' = '密碼修改', 'url' = 'modpass.php')
),
),
);
?
left.php文件很簡單就是根據(jù)用戶登錄后ID讀出權(quán)限
. 代碼如下:
?
$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這個文件就是要調(diào)用我們的adminconfig.php文件,然后利用fun.php文件中函數(shù)把提供過來的數(shù)據(jù)保存成數(shù)組如圖
點擊保存我們調(diào)用了opsava.php 文件,代碼如下
. 代碼如下:
?
include("op/fun.php");
if( $_POST )
{
$sarray = $_POST ;
cache_write($userid,'bb',$sarray);//寫入緩存
echo "scriptalert('編輯保存成功!');location='op.php?userid=".$userid."';/script";
}
?
保存成功后文件內(nèi)容如
. 代碼如下:
?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文件就只會顯示這里在的文件,這樣一個基本的后臺權(quán)限就完成了。