- Модуль: vote
- Путь к файлу: ~/bitrix/modules/vote/classes/mysql/vote.php
- Класс: CVote
- Вызов: CVote::CheckVotingIP
static function CheckVotingIP($VOTE_ID, $REMOTE_ADDR, $KEEP_IP_SEC, $params = array())
{
global $DB;
$err_mess = (CVote::err_mess())."
Function: CheckVotingIP
Line: ";
$VOTE_ID = intval($VOTE_ID);
$KEEP_IP_SEC = intval($KEEP_IP_SEC);
$params = (is_array($params) ? $params : array($params));
$params["RETURN_SEARCH_STRING"] = ($params["RETURN_SEARCH_STRING"] == "Y" ? "Y" : "N");
$arSqlSelect = array("VE.VOTE_ID", "VE.IP", "TIMESTAMPDIFF(SECOND, VE.DATE_VOTE, NOW()) AS KEEP_IP_SEC");
$arSqlSearch = array(
"VE.VOTE_ID='".$VOTE_ID."'",
"VE.IP='".$DB->ForSql($REMOTE_ADDR, 15)."'");
if ($KEEP_IP_SEC > 0):
$arSqlSearch[] = "(FROM_UNIXTIME(UNIX_TIMESTAMP(CURRENT_TIMESTAMP) - ".$KEEP_IP_SEC.") <= VE.DATE_VOTE)";
endif;
if ($params["RETURN_SEARCH_STRING"] == "Y"):
return implode(" AND ", $arSqlSearch);
elseif ($params["RETURN_SEARCH_ARRAY"] == "Y"):
return array("search" => implode(" AND ", $arSqlSearch), "select" => implode(",", $arSqlSelect));
endif;
$strSql = "SELECT VE.ID FROM b_vote_event VE WHERE ".implode(" AND ", $arSqlSearch);
$db_res = $DB->Query($strSql, false, $err_mess.__LINE__);
if ($db_res && $res = $db_res->Fetch()):
return false;
endif;
return true;
}