php用戶許可權
⑴ IIS上 php到底要什麼許可權
首先iis運行必須是管理員許可權;
其次就是
iis應用池
,應用程序(網站)管理員許可權;
最後就是根據應用程序(網站)需求,合理配置許可權了;
比如
ftp伺服器
,應該給ftp用戶配置讀寫許可權或管理員許可權,web訪客往往只需要基礎的讀寫許可權即可。
⑵ 在php網站中用戶許可權
4個表
用戶表(用戶信息表)
許可權表(設置可以訪問的頁面)
角色表(如果申請用戶的時候有多項選擇的時候添加,沒有則不需要)
用戶許可權對應關系表(這個表是用於給每個用戶賦權)
如果用戶訪問頁面的時候,判斷是否存在訪問許可權(查用戶許可權對應關系表),如果有正常訪問,如果沒有頁面跳轉。不過跳到登錄頁面感覺不太合理,你判斷用戶是否有許可權的時候,他應該是登錄狀態,如果再跳到登錄頁面感覺不合理。
判斷是否存在訪問許可權可以封裝成公共類,每個頁面初始化的時候都調用這個公共類。可以通過用戶ID進行判斷。
同是普通用戶,那就加標識,判斷的時候再判斷一下標識,然後根據標識進行頁面跳轉。
以上,希望能幫到你。
⑶ php中用戶許可權的方法
原理很簡單,資料庫中對應用戶的許可權欄位,經常是level,status,allow什麼的,然後一個用戶登錄時提取信息,用戶進行一個應用時判斷許可權等級。根據項目的不同怎麼實現也會不同,基本原理就是這樣。
我現在參與的一個應用原理如下:
載入網站底層程序
載入網站許可權(從資料庫或者緩存中提取,然後寫到靜態變數)等等
(載入用戶信息,根據規范載入用戶許可權到變數)
分析url
載入頻道,分類等等,同時載入它們的許可權(如果許可權不合會自動過濾甚至中止程序,以上也是的)
載入應用(應用也有許可權,等等)
我只做其中的一塊,不然都會暈的。。。。。
⑷ 如何用PHP根據用戶許可權,顯示對應的菜單想找一下相關的例子,希望各路大佬多多指教
把菜單成一個資料庫表,指定一個鍵。如:
id:1, title:文章管理, icon: document, url: admin/article/index (更多欄位根據需要設置)
id:2, title:產品管理, icon: cube, url: admin/proct/index
id:3, title:系統設置, icon: setting, url: admin/setting/index
然後在管理員表中添加一個varchar(500) (長度根據你的菜單總數估計)或text欄位
在管理員許可權管理中列出所有菜單項,把id作為健值,選中的保存在管理員表的許可權欄位中
格式類似: 1,2,3
然後在輸出菜單的時候進行許可權判斷
//將許可權欄位切割成數組
$perms = explode(',', $user['permission']);
foreach($menus as $menu){
if(in_array($perms, $menu['id'])){
echo '<a href="'. $menu['url'].'" >'.$menu['title'].'</a>';
}
}
然後在每個頁面根據頁面對應的許可權id做一個判斷
//比如在文章頁面
if(!in_array($perms, 1)){
exit('沒有許可權');
}
以上是大體思路,具體根據你的系統設計編寫代碼並對應地優化。
⑸ 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文件就只會顯示這里在的文件,這樣一個基本的後台許可權就完成了。
⑹ php用戶許可權分配界面
說一下我的思路(RBAC 模式),供你參考,郵箱不發了,由於資料庫需要保密,截圖也不貼了。
你在左側導航欄做三個菜單項,分別是:
1. 用戶管理
2. 角色管理
3. 許可權管理
其中 1 和 2 給管理員操作,管理員可以對其進行增刪改查等操作;3 由軟體開發者操作,不能分配給管理員;普通用戶對 1、2、3 都無權操作。
許可權管理界面,軟體開發者可以對各種許可權進行增刪改查;
角色管理界面,管理員進去後可以對角色進行增冊改查操作;具體可以這樣安排界面,右欄主區分成上中下三塊,上面這塊提供添加及查詢操作,中間塊顯示查詢結果,下面這塊查詢結果中某條記錄的明細。 增加按鈕點擊後,在明細區出現填寫表單,具體需要填哪些內容由開發者定,一般角色名為必填項,然後同時在右邊給出一個選擇許可權的列表,提供復選框讓管理員為角色勾選分配許可權;
用戶管理界面跟角色界面類似,只是管理員在創建用戶時是勾選角色而不是許可權。
大體思路就是這樣。
(PS: 資料庫中當然要先設計好用戶表、角色表、許可權表、用戶角色關聯表、角色許可權關聯表等等)
⑺ windows2012 php運行許可權
首先建一個單獨訪問網站的用戶如IIS_USER,如果有多個網站,每個網站都建一個用戶名,就算一個網站被攻擊了,另一個不會同時被攻破。
⑻ php怎麼用進行許可權劃分
實例代碼不給你提供了,還是自己去寫的好。
提供一下思路:
按照我的方法,這樣去寫:
首先管理員表:
tb_admin #管理員表
ad_id #管理員ID
ad_username # 管理員用戶名
ad_password # 管理員密碼(多重MD5)或其他加密
ad_power # 管理員許可權 默認null
ad_super # 超級管理員 0否 1是 默認0
超級管理員擁有所有許可權,包括可以設定其他管理員的許可權
你肯定是想控制管理員左側菜單欄的許可權,首先建立一個數組,(左側菜單數組)
然後給定每一個菜單一個id 例如:
商品管理 a
新增商品 a1
商品列表 a2 (包含刪改查)
ad_power 中設定某個為 a1,a2
那麼該管理員就有新增和列表兩個許可權。
根據登錄者id查詢管理員表,得到許可權
例如:
ad_id=》3
ad_username=》guanli003
ad_password=》xayufdashfhdkajshfjahsk
ad_power=》a1,a2
ad_super=》0
//$left_menu左側菜單
$left_menu=array(
0=>array(
'flog'=>'a1',
'title'=>'新增商品',
)
)
//生成一個新的數組,只包含當前登錄者的許可權
foreach($left_menuas$k=>$v){
//判斷管理員信息許可權欄位是否有該許可權
if(strpos($v['flog'],$admin[ad_power])){
//組建新數組
}
}
在前端輸出該數組即可。
當然這只是我的一個思路,你可以擴充一下,引入自己的實際項目當中。包括,當power欄位為空時設定默認的菜單等。
⑼ php 用戶許可權控制如何設計
我個人的設計是將許可權採用如下格式存儲:
$rights="發布文章,1,刪除用戶,1";
登陸後將這個許可權字元串存入session,判斷是將這個字元串拆分成以下形式的數組
$rights=array("發布文章"=>1,"刪除用戶"=>1);
$rights["發布文章"]ordie("許可權不夠!");//判斷
⑽ php 怎麼設置許可權
常規的思路是,在系統裡面增加角色,每個角色對應很多許可權,每個用戶對應一種角色,用戶登錄後獲取許可權列表,然後在進行操作的時候進行判斷。