2016-05-03 2 views
0

Ich habe diese wöchentliche Countdown-Prozess und wenn ein Login-Benutzer die 0 Wochen Grenze erreicht seine Seite wird von der Website verboten werden und das ist in Ordnung, mein Problem ist, wenn ich der Administrator bin Ich möchte nicht, dass dieser Prozess mich verbietet. Auf dieser Plattform i Privilegien Benutzer und Admin wie dieses: Für Admin: $ user-> isAdmin() und für den Benutzer: if (User- $> islg()PHP/Mysql Prozess mit Benutzer und Admin Privileg Ausgabe

Das Php Verfahren ist folgendes:

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); 
    } 
} 
} 

ich weiß nicht, wo benutzer- $ setzen> isAdmin() für nicht durch das Verfahren verboten und nur einfache Benutzer gebannt. Vielen Dank für jede Beratung, und sorry für mein schlechtes Englisch.

+0

Können Sie bitte diese Aussage klarstellen: 'Wenn ($ bleiben> 0 und $ bleiben <2)' Ich bin nicht ganz sicher, wofür die '$ bleiben <2 'ist da? –

+0

wenn ich 1week habe, um mir einen Echotext mit -> Woche und wenn 2 oder 3 usw. zu geben. Um mir einen Echotext in Wochen zu geben – Fido

+0

Dieser Prozess funktioniert gut..aber ich habe ein Problem mit dem Verbot ... das Skript verbannt mich..und ich bin mit Admin-Account angemeldet, und ich möchte nur Benutzer nicht Admins verbieten – Fido

Antwort

0

Vorausgesetzt, dass die $user->isAdmin() Methode true oder false basierend darauf zurückgibt, ob der Benutzer eine a dministrator:

Platzieren Sie eine if Anweisung vor dem eigentlichen Sperrcode.

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

Wenn Sie jedoch sicher davon ausgehen, dass die Standardeinstellung für banned0 ist. Ich schlage vor, Sie legen wickeln Sie den Zustand über den gesamten „Verbot Code“

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

    } 
} 

Und auch Sie sollten wahrscheinlich die Zähler ändern.

+0

Es funktioniert. Danke vielmals ! – Fido

Verwandte Themen