2016-05-03 14 views
0

私は今週のカウントダウンプロセスを持っています。ログインユーザーが0週間の制限に達すると、彼のページはサイトから禁止され、それは問題ありません。私はこのプロセスが私を禁止することを望んでいない。私はこのような をユーザと管理者権限を持っているこのプラットフォームでは :する$ user-> isAdmin()とユーザーのため:管理者のためであれば(する$ user-> islg()php/mysqlのプロセスでユーザーと管理者特権の問題

は、PHPのプロセスが、これは次のとおりです。

if($user->islg()) { 
function get_weeks_remaining($date, $expire){ 

     $difference = strtotime($expire) - strtotime($date); 
     return floor($difference/604800); 

} 
$link = mysqli_connect("localhost", "user", "password", "table"); 
$nume = $user->data->username; 
$id = $user->data->id; 
$date = date('m/d/Y h:i:s a', time()); 
$expire_date = 'May 14, 2016'; 
$remain = get_weeks_remaining($date, $expire_date); 
$reason = 'user has been suspended'; 
// weeks remaining 
$save=mysql_query("INSERT INTO `week-ferify`(`id`,`date`,`name`,`expire`,`remain`)VALUES('$id','$date','$name','$expire_date','$remain')"); 

$sql = "SELECT `id`,`remain` FROM `week-ferify`"; 
if($result = mysqli_query($link, $sql)){ 
if(mysqli_num_rows($result) > 0){ 
while(list($id,$remain) = mysqli_fetch_array($result)){ 
if($remain > 0 and $remain < 2){ 
    echo "<div class=\"week-remain-box\"><span class='week-remain-text'>week remain</span><p class='week-remain-remain'>$remain</p></div>"; 
}else{ 
    echo "<div class=\"week-remain-box\"><span class='week-remain-text'>weeks remains</span><p class='week-remain-remain'>$remain</p></div>"; 
    //Ban process 
} if ($remain > 0 and $remain < 2) { 
    mysql_query("UPDATE `mls_users` SET banned=0 WHERE id=$id"); 
} else { 
    mysql_query("UPDATE `mls_users` SET banned=1 WHERE id=$id"); 
    mysql_query("INSERT INTO `mls_banned`(`id`,`until`,`by`,`reason`)VALUES('$id','1462317824','1','$reason')"); 
} 
} 
mysqli_free_result($result); 
    } 
} 
} 

私は、プロセスだけの単純なユーザーによって禁止されていないためにする$ user-> isAdminを()どこに置くか知らないが、私の悪い英語のために何かアドバイスのために。おかげを禁止して、申し訳ありませんを取得します。

+0

この文を明確にしてもいいですか? '($ remain> 0かつ$ remain <2)' '$ remain <2'が何のためにあるのかよくわかりません。 –

+0

もし私に1週間にエコーテキストを与えるには - > weekと2または3など.. 2週間にエコーテキストを与えるには – Fido

+0

このプロセスはうまくいきます。しかし、私はこのスクリプトを禁止しています...スクリプト私は禁止しています。私は管理者アカウントでログオンしています。私は管理者ではないユーザーのみを禁止します – Fido

答えて

0

$user->isAdmin()メソッドが、ユーザがaであるかどうかに基づいてtrueまたはfalseを返すと仮定すると、管理者:

ifを実際の禁止コードの前に配置します。

//Ban process 
if ($remain > 0 and $remain < 2) { 
    mysql_query("UPDATE `mls_users` SET banned=0 WHERE id=$id"); 
} else { 

    if(!$user->isAdmin()){ 
    mysql_query("UPDATE `mls_users` SET banned=1 WHERE id=$id"); 
    mysql_query("INSERT INTO `mls_banned`(`id`,`until`,`by`,`reason`)VALUES('$id','1462317824','1','$reason')"); 
    } 
} 

しかし、あなたは安全にbannedのデフォルト設定は0であると仮定することができます。 "禁止コード"全体に条件をラップすることをお勧めします。

//Ban process 
if(!$user->isAdmin()){ 
    if ($remain > 0 and $remain < 2) { 
    mysql_query("UPDATE `mls_users` SET banned=0 WHERE id=$id"); 
    } else { 


    mysql_query("UPDATE `mls_users` SET banned=1 WHERE id=$id"); 
    mysql_query("INSERT INTO `mls_banned`(`id`,`until`,`by`,`reason`)VALUES('$id','1462317824','1','$reason')"); 

    } 
} 

また、おそらくカウンタも変更する必要があります。

+0

これは機能しています。どうもありがとう ! – Fido

関連する問題