/**
  * Возвращает истину если IP-адрес $strIp принадлежит сети $cidr 
  *
  * @param string $strIp Строковое представление IP-адреса(точечная нотация)
  * @param string $cidr Адрес сети в CIDR нотации
  * @return bool
  */
 public static function ipInNet($strIp, $cidr)
 {
     Lms_Ip::cidrToNet($cidr, $intNetIp, $subnetMask);
     return (ip2long($strIp) & $subnetMask) == ($intNetIp & $subnetMask);
 }
 public static function hitFilm($filmId)
 {
     if ($filmId) {
         $db = Lms_Db::get('main');
         $method = self::getConfig('hitmethod');
         switch ($method) {
             case 1:
                 $db->query('UPDATE films SET Hit=Hit+1 WHERE films.ID=?', $filmId);
                 break;
             case 2:
                 $ip = ip2long(Lms_Ip::getIp());
                 $c = $db->selectCell("SELECT count(*) FROM hits WHERE FilmID=?d AND UserID=?d", $filmId, $ip);
                 if ($c == 0) {
                     $db->query("INSERT INTO hits(FilmID,UserID,DateHit) VALUES(?d, ?d, NOW())", $filmId, $ip);
                     $db->query("UPDATE films SET Hit=Hit+1 WHERE films.ID=?d", $filmId);
                 }
                 break;
             case 3:
                 if (!isset($_SESSION['films'][$filmId])) {
                     $db->query("UPDATE films SET Hit=Hit+1 WHERE films.ID=?d", $filmId);
                     $_SESSION['films'][$filmId] = 1;
                 }
                 break;
             default:
                 $userId = Lms_User::getUser()->getId();
                 $db->query("UPDATE users SET PlayActivity=PlayActivity+1 WHERE ID=?d", $userId);
                 $c = $db->selectCell("SELECT count(*) FROM hits WHERE FilmID=?d AND UserID=?d", $filmId, $userId);
                 if ($c == 0) {
                     $db->query("INSERT INTO hits(FilmID,UserID,DateHit) VALUES(?d, ?d, NOW())", $filmId, $userId);
                     $db->query("UPDATE films SET Hit=Hit+1 WHERE films.ID=?d", $filmId);
                 }
         }
     }
 }
 public static function sendOpinion($params)
 {
     try {
         $db = Lms_Db::get('main');
         $text = trim($params['text']);
         $db->query('INSERT INTO opinions SET `ip`=?, `text`=?, posted_at=NOW(), user_agent=?', Lms_Ip::getIp(), $text, $_SERVER['HTTP_USER_AGENT']);
         return new Lms_Api_Response(200);
     } catch (Exception $e) {
         return new Lms_Api_Response(500, $e->getMessage());
     }
 }
 * Режим вывода ошибок
 */
error_reporting(E_ALL);
@setlocale(LC_ALL, array('ru_RU.CP1251', 'ru_RU.cp1251', 'ru_SU.CP1251', 'ru', 'russian'));
@setlocale(LC_NUMERIC, '');
/**
 * Установка временной зоны
 */
date_default_timezone_set('UTC');
ini_set("iconv.internal_encoding", 'CP1251');
/**
 * Инициализация отладки
 */
$config['logger'] = new Zend_Log();
$config['logger']->setEventItem('pid', getmypid());
$config['logger']->setEventItem('ip', Lms_Ip::getIp());
/**
 * Конфигурация баз данных
 */
$config['databases']['main'] = array('connectUri' => "mysql://{$config['mysqluser']}" . ($config['mysqlpass'] ? ":{$config['mysqlpass']}" : "") . "@{$config['mysqlhost']}/{$config['mysqldb']}?ident_prefix=", 'initSql' => isset($config['mysql_set_names']) ? $config['mysql_set_names'] : "", 'debug' => 0);
/**
 * Настройка языков
 */
$config['langs']['supported'] = array('ru' => 'Русский', 'en' => 'English (US)');
$config['langs']['default'] = 'en';
/**
 * Временная директория для общих нужд
 */
$config['tmp'] = isset($config['tempdir']) ? $config['tempdir'] : (isset($_ENV['TEMP']) ? $_ENV['TEMP'] : '/tmp');
$config['optimize']['classes_combine'] = 0;
$config['optimize']['js_combine'] = 0;