2010-07-21 34 views
0

我在每页的顶部调用此函数。 我该如何去除过期禁令?如果当前time()超过过期字段。 真的会帮助你。禁止检查功能

禁令

  • ID
  • IP
  • 到期

(如果到期为NULL永久)

功能

function check_bans() 
{ 

$user_ip = $_SERVER['REMOTE_ADDR']; 

// Se if users ip is banned 
$query = mysql_query("SELECT ip FROM bans WHERE ip = '$user_ip'"); 

// If they are, kill script and show message 
if (mysql_num_rows($query)) 
    die('You have been IP banished. Expires: <b>Never</b>'); 

} 

回答

2

假设expire是DATETIME数据类型,使用方法:

SELECT ip, expire 
    FROM bans 
WHERE ip = '$user_ip' 
    AND expire >= CURRENT_TIMESTAMP 

NOW()的作品一样好 - 他们是为当前日期和时间的同义词。

+0

您应该查询禁止到期日期而不是IP。这样它可以用于输出到用户... – 2010-07-21 22:02:56

1
function check_bans() 
{ 
    $user_ip = $_SERVER['REMOTE_ADDR']; 
    $query = mysql_query("SELECT expire FROM bans WHERE ip='$user_ip' AND expire >= NOW()"); 
    if (mysql_num_rows($query) && $row = mysql_fetch_array($query)) { 
    die("You have been IP banished. Expires: <b>".$row['expire']?$row['expire']:'Never'."</b>"); 
    } 
}