成员仅排名区域

时间:2012-07-12 11:12:53

标签: php mysql membership

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

Header.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排名越高,员工休息室成员可以看到的越多,但是无论人们的排名是什么,每个人都可以看到页面(但管理区域,这是除了管理区域以外唯一没有人看到的东西排名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) 

我还在学习PHP,所以请光临我。

我怎样才能这样做,只有排名最低的会员才能看到网页? 我需要它,例如排名为17+的成员可以看到此页面,因此排名为16和更低的成员将被重定向回主页。


我找到了ACL(访问控制列表)的教程

1 个答案:

答案 0 :(得分:1)

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

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

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