在我的站点中,我有一个员工休息室,但似乎每个人都可以看到它,无论您是会员还是现在。
页眉.inc.php:
$userinfo = mysql_fetch_array(mysql_query("SELECT * FROM members WHERE username='$username'"));
$rank = $userinfo[rank];
$rank1 = $userinfo[rank1];
$rank2 = $userinfo[rank2];
$rank3 = $userinfo[rank3];
$rank4 = $userinfo[rank4];
if (!$checkrank) { $checkrank = 0; }
if (!$rank) { $rank = 0; }
if (!$rank == ' ') { $rank = 0; }
if ($rank < $checkrank)
{
header("Location: $baseurl/index.php?error=You+can+not+view+this+page.");
}
if ($rank >= 30)
{
$admin = "<a href=\"$baseurl/staff/admin.php\">Admin</a>";
}
等级是5-30 等级越高的员工休息室成员可以看到的越多,但是无论什么人的等级都是每个人都可以看到页面(但是管理区域,这是除了RANK 30人之外唯一没有人可以看到的东西)
在我拥有的每个页面的顶部(banners.php):
$checkrank = 5;
if ($rank <= 0)
{
header("Location: $baseurl/index.php?article=$article&error=Only+SketchedNeo+staff+can+see+this.");
}
include ($_SERVER['DOCUMENT_ROOT'].'/staff/header.inc.php');
昨晚我和一个朋友在这里坐了几个小时,将 $checkrank 更改为 20,将 if $rank 更改为 18,然后将她在数据库中的排名设置为 15,但她仍然会看到所有页面。
我的数据库结构是:
id int(11)
username varchar(200) latin1_swedish_ci
password varchar(216) latin1_swedish_ci
security varchar(200) latin1_swedish_ci
email varchar(216) latin1_swedish_ci
ip varchar(200) latin1_swedish_ci
rank varchar(216) latin1_swedish_ci
name varchar(30) latin1_swedish_ci
age varchar(40) latin1_swedish_ci
gender varchar(40) latin1_swedish_ci
location varchar(40) latin1_swedish_ci
helpfaerie int(11)
profile text latin1_swedish_ci
about text latin1_swedish_ci
tasks text latin1_swedish_ci
joined varchar(216) latin1_swedish_ci
laston int(200)
icedmutereason text latin1_swedish_ci
icedmutedetails text latin1_swedish_ci
icedmuteby varchar(200) latin1_swedish_ci
icedmutedate int(200)
posts int(11)
signature varchar(216) latin1_swedish_ci
avatar varchar(216) latin1_swedish_ci
neohtml text latin1_swedish_ci
siggy text latin1_swedish_ci
verify int(11)
changedpass int(1)
我怎样才能使它只有具有最低等级的成员才能看到页面?我需要它是例如等级 17+ 的成员可以看到这个页面,因此等级 16 和更低的成员被重定向回主页。
我找到了 ACL(访问控制列表)的教程