Php / Mysql进程与用户&管理员权限问题

时间:2016-05-03 00:04:43

标签: php mysql

我有这个每周倒计时过程,如果登录用户达到0周限制,他的页面将被禁止访问该网站,那很好,我的问题是,如果我是管理员我不会&#39我希望这个过程禁止我。 在这个平台上,我有用户和管理员权限 像这样:对于admin:$ user-> isAdmin()和用户:if($ user-> islg()

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-&gt; isAdmin()置于何处不被进程禁止,只有简单的用户被禁止。谢谢你的任何建议,对不起我的英语不好。

1 个答案:

答案 0 :(得分:0)

根据用户是否是管理员,$user->isAdmin()方法返回truefalse

在实际禁令代码前放置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。我建议你把条件包裹在整个&#34;禁止代码&#34;

//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')");

    }
 }

你也应该修改计数器。