1

在我的站点中,我有一个员工休息室,但似乎每个人都可以看到它,无论您是会员还是现在。

页眉.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(访问控制列表)的教程

4

1 回答 1

1

您需要在发送重定向标头后阻止任何页面输出。

header("Location: $baseurl/index.php");
die();

如果您不停止执行脚本,那么重定向将永远不会发生。

于 2012-07-12T11:19:06.597 回答