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 権限ファイルです
//Write
functioncache_write($name, $var, $values) {
$cachefile = 'op/www.hzhuti.com/'.$name.'.php';
$cachetext = "";
if(!swritefile($cachefile, $cachetext))
{
exit("ファイル: $cachefile 書き込みエラー。"); /配列を文字列に変換
function arrayeval ($array, $level = 0) {
$space = '';
for($i = 0; $i $space .= "t";
}
$評価 = "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) > ''.addcslashes($val, '').'' : $val;
$evaluate .= " $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, $writetext);
fclose($fp); 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' => '公開情報', 'url' = > 'news/newsend.php'),
'newsnewmange' => array('caption' => '情報管理', 'url' => 'news/newmange.php'),
'newscomments' => array('caption' => 'コメント管理', 'url' => 'news/comments.php'),
),
),
'ask' => =>'アンケート',
'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' => ' => '投票の質問を管理', 'url' => 'vote/admin_title.php'),
'voteadmin_question_add' => '投票の回答を追加', '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' => '=>'広告管理',
'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 に基づいて権限を読み出します。
コードは次のとおりです。
adminid'];
include("op/admincofig.php");
foreach($bb as $key=> $submenu) { echo " nr ".$menus[$key]['caption']."
| ;
nr "; foreach($submenu as $subkey=>$menuitem) { $tmparr =explode("|", $menuitem); echo " 4 nr"; } echo " |
nr ";
}
op.php ファイルは、adminconfig.php ファイルを呼び出し、fun.php ファイル内の関数を使用して、図に示すように、提供されたデータを配列に保存します
「保存」をクリックします。opsava.php ファイルを呼び出します。コードは次のとおりです。
コードは次のとおりです:
? ;
if( $_POST )
{
$sarray = $_POST;
cache_write($userid,'bb',$sarray);//書き込みキャッシュ