From: x2003bruneau Date: Mon, 29 Jan 2007 15:29:32 +0000 (+0000) Subject: Cache check_ip value X-Git-Tag: xorg/0.9.13~43 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=8f61b4d56e770d53ca4126bb1f46620b9dce0db7;p=platal.git Cache check_ip value git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1428 839d8a87-29fc-0310-9880-83ba4fa771e5 --- diff --git a/include/xorg.misc.inc.php b/include/xorg.misc.inc.php index 6e99ade..895be55 100644 --- a/include/xorg.misc.inc.php +++ b/include/xorg.misc.inc.php @@ -115,19 +115,23 @@ function check_ip($level) { if (empty($_SERVER['REMOTE_ADDR'])) { return 0; - } + } + if (empty($_SESSION['check_ip'])) { + $res = XDB::query('SELECT state FROM ip_watch WHERE ip = {?}', $_SERVER['REMOTE_ADDR']); + if ($res->numRows()) { + $_SESSION['check_ip'] = $res->fetchOneCell(); + } else { + $_SESSION['check_ip'] = 'safe'; + } + } $test = array(); switch ($level) { - case 'unsafe': $test[] = "state = 'unsafe'"; - case 'dangerous': $test[] = "state = 'dangerous'"; - case 'ban': $test[] = "state = 'ban'"; break; + case 'unsafe': $test[] = 'unsafe'; + case 'dangerous': $test[] = 'dangerous'; + case 'ban': $test[] = 'ban'; break; default: return false; } - $res = XDB::query("SELECT state - FROM ip_watch - WHERE ip = {?} AND (" . implode(' OR ', $test) . ')', - $_SERVER['REMOTE_ADDR']); - return $res->numRows(); + return in_array($_SESSION['check_ip'], $test); } function check_email($email, $message)