Home >Backend Development >PHP Tutorial >PHP background multi-user permission group ideas and implementation program code_PHP tutorial
Website development is indispensable with a website backend. With the backend, it is natural to assign the same roles to users, especially in the case of a multi-user system. If I have multiple administrators in a system, then my management needs to be divided into, edit, and Friendly connections, administrators, etc., then we need to have permissions and role assignments. Today we will take a look at a system I made before.
First introduce the file,
adminconfig.php This is the permission configuration of all files in the background system.
fun.php This is a functional function
left.php The website background loads the corresponding function menu according to the user's login ID
op.php calls adminconfig.php Default permissions file
opsava.php Save user permissions into a php file
Okay, let’s take a look at the fun.php file first.
The code is as follows | Copy code | ||||
function findsub($keys ,$userid='abc' ) //This function is important to call the user's permission information { include('user/'.$userid.'.php'); foreach($bb as $key=>$submenu) { foreach($submenu as $subkey =>$menuitem) { if( $subkey == $keys ) { return 1; } } } }//The following is the php permission file to generate the user //Write function cache_write($name, $var, $values) { $cachefile = 'op/user/'.$name.'.php'; $cachetext = ""; if(!swritefile($cachefile, $cachetext)) { exit("File: $cachefile write error."); } }//Convert array into string function arrayeval($array, $level = 0) { $space = ''; for( $i = 0; $i <= $level; $i++) { $space .= "t"; } $evaluate = "Arrayn$space(n"; < br />$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; }//Write file 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 background permission configuration file, saved in the form of an array
The code is as follows | Copy code | ||||
$menus = array( 'news' = > array( 'caption'=>'Information Management', 'icon'=>'admin/icon_15.gif', 'sub' => array( 'newsaddtype' => array('caption' => 'Add category', 'url' => 'news/addtype.php'), 'newstypemange' => array(' caption' => 'Category management', 'url' => 'news/typemange.php'), 'newsnewsend' => array('caption' => 'Publish information', 'url ' => 'news/newsend.php'), 'newsnewmange' => array('caption' => 'Information Management', 'url' => 'news/newmange.php') , 'newscomments' => array('caption' => 'Comments Management', 'url' => 'news/comments.php'), ), ), 'ask' => array( 'caption'=>'Questionnaire', 'icon'=>'admin/icon_15 .gif', 'sub' => array( 'voteadmin_subject_add' => array('caption' => 'Add voting topic', 'url' => 'vote/admin_subject_add .php'), 'voteadmin_subject' => array('caption' => 'Manage voting subject', 'url' => 'vote/admin_subject.php'), 'voteadmin_title_add ' => array('caption' => 'Add voting question', 'url' => 'vote/admin_title_add.php'), 'voteadmin_title' => array('caption' => ; 'Manage voting questions', 'url' => 'vote/admin_title.php'), 'voteadmin_question_add' => array('caption' => 'Add voting answers', 'url' = > 'vote/admin_question_add.php'), 'voteadmin_question' => array('caption' => 'Manage voting answer', 'url' => 'vote/admin_question.php'), 'voteadmin_system' => array('caption' => 'Vote initial configuration', 'url' => 'vote/admin_system.php') ), ), 'ads' => array( 'caption'=>'Advertising Management', 'icon'=>'admin/icon_15.gif', ' sub' => array( 'ada' => array('caption' => 'Add advertisement', 'url' => 'ada.php'), 'adm' => array('caption' => 'Ad Management', 'url' => 'adm.php'), 'flashadd' => array('caption' => 'Focus map Advertisement add', 'url' => 'flashadd.php'), 'flashad' => array('caption' => 'Focus image advertising management', 'url' => 'flashad .php') ), ), 'mange' => array( 'caption'=>'System administrator ', 'icon'=>'admin/icon_15.gif', 'sub' => array( 'adminuser' => array('caption' => 'Add by administrator', 'url' => 'adminuser.php'), 'modpass' => array('caption' => 'Password modification', 'url' => 'modpass .php') ), ), ); ?> |
The left.php file is very simple. It reads out the permissions based on the user's ID after logging in.
The code is as follows
|
Copy code
|
||||||
echo " | |||||||
nr ".$menus[$key]['caption']." < /td> | |||||||
"; foreach($submenu as $subkey=>$menuitem) { $tmparr = explode("|",$menuitem); echo "4".$tmparr[0]." nr"; } echo " td> |
代码如下 | 复制代码 |
} |
代码如下 | 复制代码 |
$bb=Array |
Copy code |