1

私のサイトにはスタッフラウンジがありますが、メンバーであろうと今であろうと、誰もがそれを見ることができるようです。

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) 

最低ランクのメンバーだけがページを表示できるようにするにはどうすればよいですか?たとえば、ランク17以上のメンバーがこのページを表示できるようにする必要があります。したがって、ランク16以下のメンバーはホームページにリダイレクトされます。


ACL(アクセス制御リスト)のチュートリアルを見つけました

4

1 に答える 1

1

リダイレクトヘッダーを送信した後は、ページが出力されないようにする必要があります。

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

スクリプトの実行を停止しないと、リダイレクトは発生しません。

于 2012-07-12T11:19:06.597 に答える