public function registerCacheManager()
 {
     $this->app->bind(CacheManager::class, function ($app) {
         $manager = new CacheManager($app['config']['doctrine::doctrine.cache']);
         $manager->add(new ApcProvider());
         $manager->add(new MemcacheProvider());
         $manager->add(new RedisProvider());
         $manager->add(new XcacheProvider());
         $manager->add(new ArrayProvider());
         return $manager;
     });
 }
Ejemplo n.º 2
0
function Styles_XML($Element)
{
    /****************************************************************************/
    $__args_types = array('string');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $CacheID = SPrintF('Styles_XML[%s]', Md5($Element));
    #-----------------------------------------------------------------------------
    $Result = CacheManager::get($CacheID);
    if ($Result) {
        return $Result;
    }
    #-----------------------------------------------------------------------------
    $HostsIDs = Styles_HostsIDs($Element);
    if (Is_Error($HostsIDs)) {
        return ERROR | @Trigger_Error('[Styles_XML]: список хостов содержащих элемент не найдены');
    }
    #-----------------------------------------------------------------------------
    $Result = array();
    #-----------------------------------------------------------------------------
    foreach (Array_Reverse($HostsIDs) as $HostID) {
        #---------------------------------------------------------------------------
        $Path = SPrintF('%s/styles/%s/%s', SYSTEM_PATH, $HostID, $Element);
        #---------------------------------------------------------------------------
        $File = IO_Read($Path);
        if (Is_Error($File)) {
            return ERROR | @Trigger_Error('[Styles_XML]: не удалось прочитать XML-файл');
        }
        #---------------------------------------------------------------------------
        $XML = String_XML_Parse($File);
        if (Is_Exception($XML)) {
            return ERROR | @Trigger_Error('[Styles_XML]: не удалось разобрать XML-строку');
        }
        #---------------------------------------------------------------------------
        $Child = Current($XML->Childs);
        #---------------------------------------------------------------------------
        if (isset($Child->Attribs['recursive'])) {
            $Result = array();
        }
        #---------------------------------------------------------------------------
        $Adding = $XML->ToArray();
        #---------------------------------------------------------------------------
        $Adding = $Adding['XML'];
        #---------------------------------------------------------------------------
        Array_Union($Result, $Adding);
    }
    #-----------------------------------------------------------------------------
    CacheManager::add($CacheID, $Result);
    #-----------------------------------------------------------------------------
    return $Result;
}
Ejemplo n.º 3
0
    if (Is_Error($IsUpdate)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    unset($IsOK);
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    # добавляем в кэш обработанный сервер
    if (!isset($Cache[$Group])) {
        $Cache[$Group] = array();
    }
    #-------------------------------------------------------------------------------
    $Cache[$Group][] = $Server['Address'];
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# помечаем группу как обработанную
if (isset($Group)) {
    $Cache[$Group]['IsComplete'] = TRUE;
}
#-------------------------------------------------------------------------------
# Сохраняем кэшированные данные
CacheManager::add($CacheID, $Cache, 300);
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# если в процессе работы была задана группа - то возможно она не последняя, короткий цикл, если не задана - то все сервера обработаны - длинный
return isset($Group) ? Time() + 10 : $ExecuteTime;
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Ejemplo n.º 4
0
    }
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Order = DB_Select(SPrintF('%sOrdersOwners', $ServiceCode), 'OrderID', array('UNIQ', 'ID' => $ServiceOrderID));
#-------------------------------------------------------------------------------
switch (ValueOf($Order)) {
    case 'error':
        return ERROR | @Trigger_Error(500);
    case 'exception':
        #-------------------------------------------------------------------------------
        if ($IsNotFound) {
            return "00000";
        }
        #-------------------------------------------------------------------------------
        return ERROR | @Trigger_Error(400);
        #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    case 'array':
        #-------------------------------------------------------------------------------
        CacheManager::add($CacheID, $Order['OrderID'], 24 * 3600);
        #-------------------------------------------------------------------------------
        return $Order['OrderID'];
        #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Ejemplo n.º 5
0
            $Emblem = Styles_Element(SPrintF('Images/Icons/%s.png', $Service['Code']));
            if (Is_Error($Emblem)) {
                return ERROR | @Trigger_Error(500);
            }
            #-------------------------------------------------------------------------------
            $Emblem = IO_Read($Emblem);
            if (Is_Error($Emblem)) {
                return ERROR | @Trigger_Error(500);
            }
            #-------------------------------------------------------------------------------
            break;
        default:
            return ERROR | @Trigger_Error(101);
    }
    #-------------------------------------------------------------------------------
} else {
    #-------------------------------------------------------------------------------
    $File = GetUploadedFile('Services', $ServiceID);
    #-------------------------------------------------------------------------------
    $Emblem = $File['Data'];
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
CacheManager::add($CacheID, $Emblem, 24 * 3600);
#-------------------------------------------------------------------------------
Header('Content-Type: image');
Header('Cache-Control: private, max-age=86400');
#-------------------------------------------------------------------------------
return $Emblem;
#-------------------------------------------------------------------------------
         #-------------------------------------------------------------------------------
         $IsUpdate = DB_Update('DomainOrders', array('UpdateDate' => Time()), array('ID' => $DomainOrder['ID']));
         if (Is_Error($IsUpdate)) {
             return ERROR | @Trigger_Error(500);
         }
         #-------------------------------------------------------------------------------
         $Event = array('UserID' => $DomainOrder['UserID'], 'PriorityID' => 'Warning', 'Text' => SPrintF('Повторная ошибка получения данных WhoIs для домена %s.%s, проверка пропущена', $DomainOrder['DomainName'], $DomainOrder['SchemeName']));
         #-------------------------------------------------------------------------------
         $Event = Comp_Load('Events/EventInsert', $Event);
         if (!$Event) {
             return ERROR | @Trigger_Error(500);
         }
         #-------------------------------------------------------------------------------
     } else {
         #-------------------------------------------------------------------------------
         CacheManager::add($CacheID, 1, 3600);
         #-------------------------------------------------------------------------------
     }
     #-------------------------------------------------------------------------------
     return new gException('WHOIS_SERVER_ERROR', 'Ошибка сервера WhoIs');
     #-------------------------------------------------------------------------------
 #-------------------------------------------------------------------------------
 case 'exception':
     return new gException('CAN_NOT_GET_WHOIS_DATA', 'Не удалось получить данные WhoIs', $WhoIs);
 case 'false':
     return new gException('DOMAIN_ZONE_NOT_SUPPORTED', 'Доменная зона не поддерживается');
 case 'array':
     #-------------------------------------------------------------------------------
     $UDomainOrder = array('UpdateDate' => Time(), 'WhoIs' => $WhoIs['Info']);
     #-------------------------------------------------------------------------------
     $ExpirationDate = $WhoIs['ExpirationDate'];
Ejemplo n.º 7
0
function String_Xml_Parse($String, $IsUseCache = TRUE)
{
    #-------------------------------------------------------------------------------
    # костыль для удаления не-UTF8 символов
    $String = iconv('UTF-8', 'UTF-8//IGNORE', $String);
    #-------------------------------------------------------------------------------
    $Length = Mb_StrLen($String);
    #-------------------------------------------------------------------------------
    $IsUseCache = $IsUseCache && $Length > 1024;
    #-------------------------------------------------------------------------------
    if ($IsUseCache) {
        #-------------------------------------------------------------------------------
        $CacheID = SPrintF('String_XML_Parse[%s]', Md5(Crc32($String)));
        #-------------------------------------------------------------------------------
        $Result = CacheManager::get($CacheID);
        if ($Result) {
            return $Result;
        }
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[String_XML_Parse]: парсирование строки (%u bytes)', $Length));
    #-------------------------------------------------------------------------------
    $XmlParser = Xml_Parser_Create('UTF-8');
    #-------------------------------------------------------------------------------
    if (!Xml_Parser_Set_Option($XmlParser, XML_OPTION_CASE_FOLDING, FALSE)) {
        return ERROR | Trigger_Error('[String_Xml_Parse]: не удалось установить опцию парсирования (XML_OPTION_CASE_FOLDING)');
    }
    #-------------------------------------------------------------------------------
    if (!Xml_Parser_Set_Option($XmlParser, XML_OPTION_SKIP_WHITE, FALSE)) {
        return ERROR | Trigger_Error('[String_Xml_Parse]: не удалось установить опцию парсирования (XML_OPTION_SKIP_WHITE)');
    }
    #-------------------------------------------------------------------------------
    if (!Xml_Parse_Into_Struct($XmlParser, $String, $Nodes)) {
        #-------------------------------------------------------------------------------
        $ByteIndex = Xml_Get_Current_Byte_Index($XmlParser);
        #-------------------------------------------------------------------------------
        Debug(SPrintF('[system/libs/auto/String.php]: xml_error_string = %s', Xml_Error_String(Xml_Get_Error_Code($XmlParser))));
        #-------------------------------------------------------------------------------
        Debug(SPrintF('[system/libs/auto/String.php]: %s', Mb_SubStr($String, $ByteIndex - 100, $ByteIndex + 100)));
        #-------------------------------------------------------------------------------
        $Buffer = Mb_SubStr($String, 0, $ByteIndex);
        #-------------------------------------------------------------------------------
        $Line = Preg_Match_All("/(\r\n|\n)/sU", $Buffer, $Matches) + 1;
        #-------------------------------------------------------------------------------
        return new gException('XML_PARSE_ERROR', SPrintF('%s в линии %u', Xml_Error_String($XmlParser), $Line));
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    #-----------------------------------------------------------------------------
    Xml_Parser_Free($XmlParser);
    #-----------------------------------------------------------------------------
    $Root = new Tag('__ROOT__');
    #-----------------------------------------------------------------------------
    $Links = array(&$Root);
    #-----------------------------------------------------------------------------
    foreach ($Nodes as $Node) {
        #---------------------------------------------------------------------------
        $Current = $Links[Count($Links) - 1];
        #---------------------------------------------------------------------------
        switch ($Node['type']) {
            case 'open':
                #-----------------------------------------------------------------------
                $Tag = new Tag($Node['tag']);
                #-----------------------------------------------------------------------
                if (isset($Node['attributes'])) {
                    $Tag->AddAttribs($Node['attributes']);
                }
                #-----------------------------------------------------------------------
                if (isset($Node['value'])) {
                    #---------------------------------------------------------------------
                    $Value = $Node['value'];
                    #---------------------------------------------------------------------
                    if (Trim($Value)) {
                        $Tag->AddChild(new Tag('CDATA', $Value));
                    }
                }
                #-----------------------------------------------------------------------
                $Current->Childs[] = $Tag;
                #-----------------------------------------------------------------------
                $Links[] =& $Current->Childs[Count($Current->Childs) - 1];
                break;
            case 'cdata':
                #-----------------------------------------------------------------------
                $Value = $Node['value'];
                #-----------------------------------------------------------------------
                if (Trim($Value)) {
                    #---------------------------------------------------------------------
                    $Tag = new Tag('CDATA', $Value);
                    #---------------------------------------------------------------------
                    $Current->Childs[] = $Tag;
                }
                break;
            case 'complete':
                #-----------------------------------------------------------------------
                $Tag = new Tag($Node['tag']);
                #-----------------------------------------------------------------------
                if (isset($Node['attributes'])) {
                    $Tag->AddAttribs($Node['attributes']);
                }
                #-----------------------------------------------------------------------
                if (isset($Node['value'])) {
                    $Tag->AddText($Node['value']);
                }
                #-----------------------------------------------------------------------
                $Current->Childs[] = $Tag;
                break;
            case 'close':
                Array_Pop($Links);
                break;
            default:
                # No more...
        }
    }
    #-----------------------------------------------------------------------------
    if ($IsUseCache) {
        CacheManager::add($CacheID, $Root);
    }
    #-----------------------------------------------------------------------------
    return $Root;
}
Ejemplo n.º 8
0
}
#-------------------------------------------------------------------------------
$NoBody = new Tag('NOBODY');
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Where = array("`StatusID` = 'Working' OR `StatusID` = 'Newest'", "`Flags` != 'CloseOnSee'", "(SELECT `IsDepartment` FROM `Groups` WHERE `Groups`.`ID` = `Edesks`.`TargetGroupID`) = 'yes'", "(SELECT `IsDepartment` FROM `Groups` WHERE `Groups`.`ID` = (SELECT `GroupID` FROM `Users` WHERE `Users`.`ID` = `Edesks`.`UserID`)) = 'no'");
#-------------------------------------------------------------------------------
$Count = DB_Count('Edesks', array('Where' => $Where));
if (Is_Error($Count)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
if ($Count) {
    $NoBody->AddChild(new Tag('A', array('href' => '/Administrator/Tickets', 'class' => 'Image'), new Tag('IMG', array('alt' => 'Новые сообщения', 'border' => 0, 'width' => 13, 'height' => 9, 'src' => 'SRC:{Images/Icons/Message1.gif}'))));
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
if (Count($NoBody->Childs)) {
    #-------------------------------------------------------------------------------
    $NoBody->AddChild(new Tag('SPAN', $Adding));
    #-------------------------------------------------------------------------------
    $Adding = $NoBody;
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
CacheManager::add($CacheID, $Adding, 60);
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return $Adding;
#-------------------------------------------------------------------------------
Ejemplo n.º 9
0
#-------------------------------------------------------------------------------
if (!isset($_SERVER["HTTP_REFERER"])) {
    #-------------------------------------------------------------------------------
    $Count = IntVal(CacheManager::get($CacheID));
    #-------------------------------------------------------------------------------
    if ($Count > 2) {
        #-------------------------------------------------------------------------------
        $NoBody = new Tag('NOBODY');
        #-------------------------------------------------------------------------------
        $NoBody->AddHTML(TemplateReplace('Notes.User.CheckReferer'));
        #-------------------------------------------------------------------------------
        $Result[] = $NoBody;
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    $Count++;
    #-------------------------------------------------------------------------------
    CacheManager::add($CacheID, $Count, 600);
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[comp/Notes/User/CheckReferer]: HTTP_REFERER is not set for IP = %s, Count = %u', $_SERVER['REMOTE_ADDR'], $Count));
    #-------------------------------------------------------------------------------
} else {
    #-------------------------------------------------------------------------------
    CacheManager::add($CacheID, 0, 600);
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return $Result;
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Ejemplo n.º 10
0
            break;
        default:
            return ERROR | @Trigger_Error(101);
    }
    #-----------------------------------------------------------------------------
    for ($i = 0; $i < Count($Services); $i++) {
        $Query = DB_Query(SPrintF("SHOW TABLES LIKE '%s%%OrdersOwners'", $Services[$i]['Code']));
        $Row = MySQL::Result($Query);
        foreach (Array_Keys($Row[0]) as $Key) {
            $Services[$i]['View'] = $Row[0][$Key];
        }
        $View = Preg_Split('/Owner/', $Services[$i]['View']);
        $Services[$i]['Table'] = Current($View);
    }
    #-----------------------------------------------------------------------------
    CacheManager::add($CacheID, $Services, 600);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#Debug("[Tasks/GC/EraseDeletedOrders]: " . print_r($Services,true));
#-------------------------------------------------------------------------------
for ($i = 0; $i < Count($Services); $i++) {
    Debug(SPrintF("[Tasks/GC/EraseDeletedOrders]: Код текущей услуги - %s", $Services[$i]['Code']));
    #-----------------------------------------------------------------------------
    $Where = SPrintF("`StatusID` = 'Deleted' AND `StatusDate` < UNIX_TIMESTAMP( ) - %d *86400", $Params['Invoices']['DaysBeforeErase']);
    #-----------------------------------------------------------------------------
    $Orders = DB_Select($Services[$i]['View'], array('ID', 'OrderID', 'UserID'), array('Where' => $Where));
    #-----------------------------------------------------------------------------
    switch (ValueOf($Orders)) {
        case 'error':
            return ERROR | @Trigger_Error(500);
Ejemplo n.º 11
0
function WhoIs_Check($DomainName, $ZoneName, $IsAvalible = FALSE)
{
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[system/libs/WhoIs]: run function WhoIs_Check, Domain = %s.%s', $DomainName, $ZoneName));
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    $CacheID = SPrintF('WhoIs-%s.%s', $DomainName, $ZoneName);
    #-------------------------------------------------------------------------------
    $Answer = CacheManager::get($CacheID);
    #-------------------------------------------------------------------------------
    if (!$Answer) {
        #-------------------------------------------------------------------------------
        # смотрим доменную зону, на предмет того использовать ли данные whois сервера, или юзать запросы к регистратору
        $DomainZones = System_XML('config/DomainZones.xml');
        if (Is_Error($DomainZones)) {
            return ERROR | @Trigger_Error('[comp/www/API/WhoIs]: не удалось загрузить базу WhoIs серверов');
        }
        #-------------------------------------------------------------------------------
        $IsSuppoted = FALSE;
        #-------------------------------------------------------------------------------
        foreach ($DomainZones as $Zone) {
            #-------------------------------------------------------------------------------
            if ($Zone['Name'] == $ZoneName) {
                #-------------------------------------------------------------------------------
                $IsSuppoted = TRUE;
                #-------------------------------------------------------------------------------
                break;
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
        if (!$IsSuppoted || $Zone['IsUseRegistratorWhoIs']) {
            #-------------------------------------------------------------------------------
            if (!$IsSuppoted) {
                Debug(SPrintF('[comp/www/API/WhoIs]: доменная зона не поддерживается'));
            }
            #-------------------------------------------------------------------------------
            if ($IsSuppoted && $Zone['IsUseRegistratorWhoIs']) {
                Debug(SPrintF('[comp/www/API/WhoIs]: принудительное использование WhoIs регистратора'));
            }
            #-------------------------------------------------------------------------------
            #-------------------------------------------------------------------------------
            # чекаем доменную зону
            $Regulars = Regulars();
            #-------------------------------------------------------------------------------
            if (!Preg_Match($Regulars['DomainZone'], $ZoneName)) {
                return ERROR | @Trigger_Error(SPrintF('[comp/www/API/WhoIs]: неверная доменная зона (%s)', $ZoneName));
            }
            #-------------------------------------------------------------------------------
            # достаём список серверов на которых есть такой тариф
            $Servers = DB_Select('DomainSchemes', array('ServerID'), array('Where' => SPrintF('`Name` = "%s"', $ZoneName)));
            #-------------------------------------------------------------------------------
            switch (ValueOf($Servers)) {
                case 'error':
                    return ERROR | @Trigger_Error(500);
                case 'exception':
                    return new gException('REGISTRATOR_SERVER_NOT_FOUND', 'Не найдены активные сервера регистраторов');
                case 'array':
                    #-------------------------------------------------------------------------------
                    $Array = array();
                    #-------------------------------------------------------------------------------
                    foreach ($Servers as $Server) {
                        $Array[] = $Server['ServerID'];
                    }
                    #-------------------------------------------------------------------------------
                    break;
                    #-------------------------------------------------------------------------------
                #-------------------------------------------------------------------------------
                default:
                    return ERROR | @Trigger_Error(101);
            }
            #-------------------------------------------------------------------------------
            # достаём список активных серверов регистраторов
            $Servers = DB_Select('Servers', array('ID', 'Address', 'Params'), array('Where' => array(SPrintF('`ID` IN (%s)', Implode(',', $Array)), '`IsActive` = "yes"'), 'SortOn' => 'Address'));
            #-------------------------------------------------------------------------------
            switch (ValueOf($Servers)) {
                case 'error':
                    return ERROR | @Trigger_Error(500);
                case 'exception':
                    return new gException('REGISTRATOR_SERVER_NOT_FOUND', 'Не найдены активные сервера регистраторов');
                case 'array':
                    break;
                default:
                    return ERROR | @Trigger_Error(101);
            }
            #-------------------------------------------------------------------------------
            # перебираем регистраторов
            $UseServer = FALSE;
            #-------------------------------------------------------------------------------
            foreach ($Servers as $iServer) {
                #-------------------------------------------------------------------------------
                # если это не проверка доступности и в настройках сервера не стоит галка про получение WhoIs - пропускаем
                if (!$IsAvalible) {
                    if (!$iServer['Params']['IsFetchWhoIs']) {
                        continue;
                    }
                }
                #-------------------------------------------------------------------------------
                # достаём использованные запросы к регистратору, на данную минуту
                $RatelimitID = SPrintF('ratelimit-%s-%s-00', $iServer['Address'], Date('H-i'));
                #-------------------------------------------------------------------------------
                $Ratelimit = CacheManager::get($RatelimitID);
                #-------------------------------------------------------------------------------
                # если из кэша что-то досталось и оно больше разрешённой частоты запросов - пропускаем цикл
                if ($Ratelimit && $Ratelimit >= $iServer['Params']['RatelimitAPI']) {
                    #-------------------------------------------------------------------------------
                    Debug(SPrintF('[comp/www/API/WhoIs]: превышена частота запросов к серверу %s (разрешено %u, использовано %u)', $iServer['Address'], $iServer['Params']['RatelimitAPI'], $Ratelimit));
                    #-------------------------------------------------------------------------------
                    continue;
                    #-------------------------------------------------------------------------------
                }
                #-------------------------------------------------------------------------------
                # сохраняем, на пару минут, в кэш новое число запросов к регистратору
                CacheManager::add($RatelimitID, IntVal($Ratelimit) + 1, 120);
                #-------------------------------------------------------------------------------
                $UseServer = $iServer;
                #-------------------------------------------------------------------------------
                break;
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
            # если не задан сервер - частота превышена для всех серверов
            if (!$UseServer) {
                return new gException('REGISTRATOR_SERVER_RATELIMIT', 'Превышена максимальная частота запросов к интерфейсу регистратора');
            }
            #-------------------------------------------------------------------------------
            #-------------------------------------------------------------------------------
            # выбираем сервер регистратора
            if (Is_Error(System_Load('classes/DomainServer.class.php'))) {
                return ERROR | @Trigger_Error(500);
            }
            #-------------------------------------------------------------------------------
            $Server = new DomainServer();
            #-------------------------------------------------------------------------------
            $IsSelected = $Server->Select((int) $UseServer['ID']);
            #-------------------------------------------------------------------------------
            switch (ValueOf($IsSelected)) {
                case 'error':
                    return ERROR | @Trigger_Error(500);
                case 'exception':
                    return new gException('CANNOT_SELECT_REGISTRATOR', 'Не удалось выбрать регистратора');
                case 'true':
                    break;
                default:
                    return ERROR | @Trigger_Error(101);
            }
            #-------------------------------------------------------------------------------
            # делаем запрос к API - функция в зависимости от $IsAvalible
            if ($IsAvalible) {
                #-------------------------------------------------------------------------------
                $DomainCheck = $Server->DomainCheck($DomainName, $ZoneName);
                #-------------------------------------------------------------------------------
                switch (ValueOf($DomainCheck)) {
                    case 'error':
                        return ERROR | @Trigger_Error(500);
                    case 'exception':
                        return ERROR | @Trigger_Error(400);
                    case 'true':
                        return TRUE;
                    case 'false':
                        return array();
                    case 'array':
                        break;
                    default:
                        return ERROR | @Trigger_Error(101);
                }
                #-------------------------------------------------------------------------------
            } else {
                #-------------------------------------------------------------------------------
                $DomainWhoIs = $Server->DomainWhoIs($DomainName, $ZoneName);
                #-------------------------------------------------------------------------------
                switch (ValueOf($DomainWhoIs)) {
                    case 'error':
                        return ERROR | @Trigger_Error(500);
                    case 'exception':
                        # a функции нет ... вылезаем на обычную проверку whois
                        break;
                    case 'true':
                        return TRUE;
                    case 'string':
                        #-------------------------------------------------------------------------------
                        CacheManager::add($CacheID, $DomainWhoIs, 1800);
                        #-------------------------------------------------------------------------------
                        break;
                        #-------------------------------------------------------------------------------
                    #-------------------------------------------------------------------------------
                    default:
                        return ERROR | @Trigger_Error(101);
                }
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    $Config = Config();
    #-------------------------------------------------------------------------------
    $UseSystemApplication = $Config['Other']['Libs']['WhoIs']['UseSystemApplication'];
    #-------------------------------------------------------------------------------
    $Regulars = Regulars();
    #-------------------------------------------------------------------------------
    if (!Preg_Match($Regulars['DomainName'], $DomainName)) {
        return new gException('WRONG_DOMAIN_NAME', 'Неверное доменное имя');
    }
    #-------------------------------------------------------------------------------
    $DomainZones = System_XML('config/DomainZones.xml');
    if (Is_Error($DomainZones)) {
        return ERROR | @Trigger_Error('[WhoIs_Check]: не удалось загрузить базу WhoIs серверов');
    }
    #-------------------------------------------------------------------------------
    $IsSuppoted = FALSE;
    #-------------------------------------------------------------------------------
    foreach ($DomainZones as $DomainZone) {
        #-------------------------------------------------------------------------------
        if ($DomainZone['Name'] == $ZoneName) {
            #-------------------------------------------------------------------------------
            $IsSuppoted = TRUE;
            #-------------------------------------------------------------------------------
            break;
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    if (!$IsSuppoted && !isset($DomainWhoIs)) {
        return FALSE;
    }
    #-------------------------------------------------------------------------------
    if (Mb_StrLen($DomainName) < ($MinChars = $DomainZone['MinChars'])) {
        return new gException('WRONG_DOMAIN_NAME_LENGTH', SPrintF('Длина доменного имени должна быть не менее %u символа(ов)', $MinChars));
    }
    #-------------------------------------------------------------------------------
    $Domain = SPrintF('%s.%s', $DomainName, $DomainZone['Name']);
    #-------------------------------------------------------------------------------
    $Answer = CacheManager::get($CacheID);
    #-------------------------------------------------------------------------------
    if (!$Answer) {
        #-------------------------------------------------------------------------------
        $IDNAConverter = new IDNAConvert();
        #-------------------------------------------------------------------------------
        if ($UseSystemApplication) {
            #-------------------------------------------------------------------------------
            $IsExec = Exec(SPrintF('whois %s', $IDNAConverter->encode($Domain)), $Answer);
            #-------------------------------------------------------------------------------
            $Answer = Implode("\n", $Answer);
            #-------------------------------------------------------------------------------
        } else {
            #-------------------------------------------------------------------------------
            $Socket = @FsockOpen($DomainZone['Server'], 43, $nError, $sError, 5);
            #-------------------------------------------------------------------------------
            if (!$Socket) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: ошибка соединения с сервером WhoIs');
            }
            #-------------------------------------------------------------------------------
            if (!@Fputs($Socket, SPrintF("%s\r\n", $IDNAConverter->encode($Domain)))) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: ошибка работы с серверов WhoIs');
            }
            #-------------------------------------------------------------------------------
            $Answer = '';
            #-------------------------------------------------------------------------------
            do {
                #-------------------------------------------------------------------------------
                $Line = @Fgets($Socket, 10);
                #-------------------------------------------------------------------------------
                $Answer .= $Line;
                #-------------------------------------------------------------------------------
            } while ($Line);
            #-------------------------------------------------------------------------------
            Fclose($Socket);
            #-------------------------------------------------------------------------------
            CacheManager::add($CacheID, $Answer, 1800);
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
        Debug(SPrintF('[system/libs/WhoIs.php]: Answer = %s', print_r($Answer, true)));
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    if (Preg_Match(SPrintF('/%s/', $DomainZone['Available']), $Answer)) {
        return TRUE;
    }
    #-------------------------------------------------------------------------------
    if (Preg_Match(SPrintF('/%s/', $DomainZone['NotAvailable']), $Answer)) {
        return new gException('DOMAIN_NOT_AVAILABLE', 'Доменное имя не доступно для регистрации');
    }
    #-------------------------------------------------------------------------------
    $Result = array('Info' => Preg_Replace('/\\n\\s+\\n/sU', "\n", Preg_Replace('/\\%.+\\n/sU', '', $Answer)), 'ExpirationDate' => 0);
    #-------------------------------------------------------------------------------
    $ExpirationDate = $DomainZone['ExpirationDate'];
    #-------------------------------------------------------------------------------
    if ($ExpirationDate) {
        #-------------------------------------------------------------------------------
        if (Preg_Match(SPrintF('/%s/', $ExpirationDate), $Answer, $Mathes)) {
            #-------------------------------------------------------------------------------
            if (Count($Mathes) < 2) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: шаблон поиска даты окончания задан неверно');
            }
            #-------------------------------------------------------------------------------
            $ExpirationDate = $Mathes[1];
            #-------------------------------------------------------------------------------
            $Months = array('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec');
            #-------------------------------------------------------------------------------
            if (Preg_Match('/^[0-9]{4}\\.[0-9]{2}\\.[0-9]{2}$/', $ExpirationDate)) {
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Year', 'Month', 'Day'), Explode('.', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Date['Month'], $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            } elseif (Preg_Match('/^[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}$/', $ExpirationDate)) {
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Year', 'Month', 'Day'), Explode('-', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Date['Month'], $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            } elseif (Preg_Match('/^[0-9]{2}\\-[a-zA-Z]{3}\\-[0-9]{4}$/', $ExpirationDate)) {
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Day', 'Month', 'Year'), Explode('-', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $Month = Array_Search(StrToLower($Date['Month']), $Months);
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Month + 1, $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            } elseif (Preg_Match('/^[0-9]{2}\\s[a-zA-Z]{2,10}\\s[0-9]{4}$/', $ExpirationDate)) {
                #-------------------------------------------------------------------------------
                $Months = array('january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'octember', 'november', 'decemeber');
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Day', 'Month', 'Year'), Preg_Split('/\\s+/', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $Month = Array_Search(StrToLower($Date['Month']), $Months);
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Month + 1, $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            } else {
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Week', 'Month', 'Day', 'Time', 'GMT', 'Year'), Preg_Split('/\\s+/', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $Month = Array_Search(StrToLower($Date['Month']), $Months);
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Month + 1, $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
            $Result['ExpirationDate'] = $ExpirationDate;
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    $NsName = $DomainZone['NsName'];
    #-------------------------------------------------------------------------------
    if ($NsName) {
        #-------------------------------------------------------------------------------
        if (Preg_Match_All(SPrintF('/%s/', $NsName), $Answer, $Mathes)) {
            #-------------------------------------------------------------------------------
            if (Count($Mathes) < 2) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: шаблон поиска именных серверов задан неверно');
            }
            #-------------------------------------------------------------------------------
            $NsNames = $Mathes[1];
            #-------------------------------------------------------------------------------
            for ($i = 0; $i < Count($NsNames); $i++) {
                #-------------------------------------------------------------------------------
                $NsName = Trim(StrToLower($NsNames[$i]), '.');
                #-------------------------------------------------------------------------------
                $Result[SPrintF('Ns%uName', $i + 1)] = $NsName;
                #-------------------------------------------------------------------------------
                if ($NsName) {
                    #-------------------------------------------------------------------------------
                    if (Mb_SubStr($NsName, -Mb_StrLen($Domain)) == $Domain) {
                        #-------------------------------------------------------------------------------
                        $IP = GetHostByName($NsName);
                        #-------------------------------------------------------------------------------
                        if ($IP != $NsName) {
                            $Result[SPrintF('Ns%uIP', $i + 1)] = $IP;
                        }
                        #-------------------------------------------------------------------------------
                    }
                    #-------------------------------------------------------------------------------
                }
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    $Registrar = $DomainZone['Registrar'];
    #-------------------------------------------------------------------------------
    if ($Registrar) {
        #-------------------------------------------------------------------------------
        if (Preg_Match(SPrintF('/%s/', $Registrar), $Answer, $Mathes)) {
            #-------------------------------------------------------------------------------
            if (Count($Mathes) < 2) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: шаблон поиска регистратора серверов задан неверно');
            }
            #-------------------------------------------------------------------------------
            $Registrar = Next($Mathes);
            #-------------------------------------------------------------------------------
            $Result['Registrar'] = $Registrar;
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    return $Result;
    #-------------------------------------------------------------------------------
}
Ejemplo n.º 12
0
    #-------------------------------------------------------------------------------
    $Params = $__USER['Params'];
    #-------------------------------------------------------------------------------
    $Params['NotificationMethods'][$Method]['Confirmed'] = 0;
    #-------------------------------------------------------------------------------
    $IsUpdate = DB_Update('Users', array('Params' => $Params), array('ID' => $__USER['ID']));
    if (Is_Error($IsUpdate)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    CacheManager::add($Cache['Confirm1'], $Confirm1, 10 * 24 * 3600);
    #-------------------------------------------------------------------------------
    CacheManager::add($Cache['Confirm2'], $Confirm2, 10 * 24 * 3600);
    #-------------------------------------------------------------------------------
    CacheManager::add($Cache['Limit'], Time(), IntVal($Settings['ConfirmInterval']));
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    return array('Status' => 'Ok');
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
} else {
    #-------------------------------------------------------------------------------
    if (empty($Confirm) && empty($Code)) {
        return new gException('ERROR_CODE_EMPTY', 'Введите полученный код подтверждения, или пройдите по ссылке из сообщения');
    }
    #-------------------------------------------------------------------------------
    $Confirm1 = CacheManager::get($Cache['Confirm1']);
    #-------------------------------------------------------------------------------
    $Confirm2 = CacheManager::get($Cache['Confirm2']);
    #-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
foreach (Array_Keys($ContactDetail['FullInfo']) as $Key) {
    #-------------------------------------------------------------------------------
    $Comp = Comp_Load('Form/Input', array('name' => $Key, 'type' => 'hidden', 'value' => $ContactDetail['FullInfo'][$Key]));
    if (Is_Error($Comp)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    $Form->AddChild($Comp);
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$DOM->AddChild('Head', new Tag('SCRIPT', array('type' => 'text/javascript'), SPrintF("var \$Domain = '%s';", $Domain)));
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$DOM->AddChild('Into', $Form);
#-------------------------------------------------------------------------------
if (Is_Error($DOM->Build(FALSE))) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
if (isset($CacheID)) {
    CacheManager::add($CacheID, Time(), 60);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return array('Status' => 'Ok', 'DOM' => $DOM->Object);
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Comp = Comp_Load('Tables/Standard', $Table);
if (Is_Error($Comp)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$DOM->AddChild('Into', $Comp);
#-------------------------------------------------------------------------------
if (Is_Error($DOM->Build(FALSE))) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
if (isset($CacheID)) {
    #-------------------------------------------------------------------------------
    $Result = CacheManager::get($CacheID);
    #-------------------------------------------------------------------------------
    $Count = $Result ? $Result + 1 : 1;
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[comp/www/DomainOrderRegistratorInfo]: Count = %s', $Count));
    #-------------------------------------------------------------------------------
    CacheManager::add($CacheID, $Count, 300);
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return array('Status' => 'Ok', 'DOM' => $DOM->Object);
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Ejemplo n.º 15
0
function Tree_Entrance($TableID, $RowID)
{
    /****************************************************************************/
    $__args_types = array('string', 'integer');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $Regulars = Regulars();
    #-----------------------------------------------------------------------------
    if (!Preg_Match($Regulars['ID'], $TableID)) {
        return new gException('WRONG_TABLE_ID', 'Неверный идентификатор таблицы');
    }
    #-----------------------------------------------------------------------------
    $CacheID = SPrintF('Tree_Entrance[%s]', Md5(SPrintF('%s:%u', $TableID, $RowID)));
    #-----------------------------------------------------------------------------
    $Result = CacheManager::get($CacheID);
    if (!$Result) {
        #---------------------------------------------------------------------------
        $Row = DB_Select($TableID, '*', array('UNIQ', 'ID' => $RowID));
        #---------------------------------------------------------------------------
        switch (ValueOf($Row)) {
            case 'error':
                return ERROR | @Trigger_Error('[Tree_Entrance]: не возможно найти запись');
            case 'exception':
                return new gException('ROW_NOT_FOUND', 'Запись не найдена');
            case 'array':
                #-----------------------------------------------------------------------
                $Result = array($Row['ID']);
                #-----------------------------------------------------------------------
                $Where = SPrintF('`ParentID` = %u AND `ID` != `ParentID`', $Row['ID']);
                #-----------------------------------------------------------------------
                $Childs = DB_Select($TableID, '*', array('Where' => $Where));
                #-----------------------------------------------------------------------
                switch (ValueOf($Childs)) {
                    case 'error':
                        return ERROR | @Trigger_Error('[Tree_Entrance]: не возможно найти дочерние записи');
                    case 'exception':
                        #----->
                        break;
                    case 'array':
                        #-------------------------------------------------------------------
                        foreach ($Childs as $Child) {
                            #-----------------------------------------------------------------
                            $Entrance = Tree_Entrance($TableID, (int) $Child['ID']);
                            #-----------------------------------------------------------------
                            switch (ValueOf($Entrance)) {
                                case 'error':
                                    return ERROR | @Trigger_Error('[Tree_Entrance]: не возможно определить дочерние вхождения записей');
                                case 'exception':
                                    return ERROR | @Trigger_Error('[Tree_Entrance]: запись оказавшаяся дочерней не найдена');
                                case 'array':
                                    $Result = Array_Merge($Result, $Entrance);
                                    break;
                                default:
                                    return ERROR | @Trigger_Error(101);
                            }
                        }
                        break;
                    default:
                        return ERROR | @Trigger_Error(101);
                }
                #-----------------------------------------------------------------------
                CacheManager::add($CacheID, $Result);
                break;
            default:
                return ERROR | @Trigger_Error(101);
        }
    }
    #-----------------------------------------------------------------------------
    return $Result;
}
Ejemplo n.º 16
0
            $WidgetID = SubStr($File, 0, StriPos($File, '.'));
            #-------------------------------------------------------------------------
            $Comp = Comp_Load(SPrintF('Widgets/%s/%s', $Interface, $WidgetID));
            if (Is_Error($Comp)) {
                return ERROR | @Trigger_Error(500);
            }
            #-------------------------------------------------------------------------
            if (Is_Array($Comp)) {
                #-----------------------------------------------------------------------
                $Comp = Comp_Load('Widget', Md5($WidgetID), $Comp['Title'], $Comp['DOM']);
                if (Is_Error($Comp)) {
                    return ERROR | @Trigger_Error(500);
                }
                #-----------------------------------------------------------------------
                $Td->AddChild($Comp);
            }
        }
    }
    #-----------------------------------------------------------------------------
    if (!Count($Td->Childs)) {
        $Td->AddChild(new Tag('SPAN', array('style' => 'color:#848484;'), 'Виджеты не загружены. Виджет - примитивы графического интерфейса пользователя, имеющие стандартный внешний вид и выполняющие стандартные действия. Виджеты будут автоматически загружаться по мере появления информации в БД.'));
    }
    #-----------------------------------------------------------------------------
    $Out = new Tag('TABLE', array('class' => 'Standard', 'style' => 'background-image:url(SRC:{Images/Grid.png});', 'width' => $Width, 'height' => $Height), new Tag('TR', new Tag('TD', array('height' => '20px', 'style' => 'font-size:11px;color:#DCDCDC;'), 'Рабочая область')), new Tag('TR', $Td));
    #-----------------------------------------------------------------------------
    CacheManager::add($CacheID, $Out, 3600);
    return $Out;
}
#-------------------------------------------------------------------------------
return new Tag('NOBODY', 'User not authorisated...');
#-------------------------------------------------------------------------------
Ejemplo n.º 17
0
            $Result[] = $Event;
            #-------------------------------------------------------------------------------
            $LastID = $Event['ID'];
            #-------------------------------------------------------------------------------
            #Debug("[comp/www/API/Events]: last selected ID = " . $LastID);
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
        CacheManager::add($LastIDCacheID, $LastID, 24 * 3600);
        /* на сутки в кэш */
        #-------------------------------------------------------------------------------
        $Out['Status'] = 'Ok';
        $Out['Events'] = $Result;
        #-------------------------------------------------------------------------------
        break;
        #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
CacheManager::add($TimeCacheID, Time(), 10);
CacheManager::add($OutCacheID, $Out, 10);
#Debug("[comp/www/API/Events]: результат добавлен в кэш");
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#Debug(Print_r($Out,true));
return $Out;
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Ejemplo n.º 18
0
 $CacheID = Md5($Path . $GLOBALS['__USER']['ID']);
 #-------------------------------------------------------------------------------
 $Result = CacheManager::get($CacheID);
 #-------------------------------------------------------------------------------
 if ($Result) {
     #-------------------------------------------------------------------------------
     $Notes = $Result;
     #-------------------------------------------------------------------------------
 } else {
     #-------------------------------------------------------------------------------
     $Notes = Comp_Load($Path);
     if (Is_Error($Notes)) {
         return ERROR | @Trigger_Error(500);
     }
     #-------------------------------------------------------------------------------
     CacheManager::add($CacheID, $Notes, 60);
     #-------------------------------------------------------------------------------
 }
 #-------------------------------------------------------------------------------
 foreach ($Notes as $Note) {
     #-------------------------------------------------------------------------------
     $MessageID = SPrintF('note_%s_%s', $GLOBALS['__USER']['ID'], SubStr(Md5(JSON_Encode($Note)), 0, 6));
     #-------------------------------------------------------------------------------
     if (isset($_COOKIE[$MessageID])) {
         continue;
     }
     #-------------------------------------------------------------------------------
     $Comp = Comp_Load('Information', $Note, 'Warning', $MessageID);
     if (Is_Error($Comp)) {
         return ERROR | @Trigger_Error(500);
     }
Ejemplo n.º 19
0
    case 'error':
        return ERROR | @Trigger_Error(500);
    case 'exception':
        return ERROR | @Trigger_Error(400);
    case 'false':
        break;
    case 'true':
        break;
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
$GLOBALS['__USER']['IsAdmin'] = $IsAdmin;
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
if (!isset($GLOBALS['__USER']['IsEmulate'])) {
    #-------------------------------------------------------------------------------
    $Cached = CacheManager::get(Md5(SPrintF('LastLogon_%s', $User['Email'])));
    #-------------------------------------------------------------------------------
    if (!$Cached) {
        CacheManager::add(Md5(SPrintF('LastLogon_%s', $User['Email'])), array('EnterIP' => $User['EnterIP'], 'EnterDate' => $User['EnterDate']), 15 * 60);
    }
    #-------------------------------------------------------------------------------
    #Debug(SPrintF('[comp/Users/Init]: User[EnterIP] = %s',$User['EnterIP']));
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return $User;
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Ejemplo n.º 20
0
}
#-------------------------------------------------------------------------------
if ($Code == 'Domain') {
    $ColumnName = 'ExpirationDate';
}
#-------------------------------------------------------------------------------
$Order = DB_Select($Table, array($ColumnName), array('UNIQ', 'Where' => $Where));
#-------------------------------------------------------------------------------
switch (ValueOf($Order)) {
    case 'error':
        return ERROR | @Trigger_Error(500);
    case 'exception':
        return ERROR | @Trigger_Error(400);
    case 'array':
        break;
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Comp = Comp_Load($CompName, $Order[$ColumnName]);
if (Is_Error($Comp)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
CacheManager::add($CacheID, $Comp, 3600);
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return $Comp;
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Ejemplo n.º 21
0
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Config = Config();
#-------------------------------------------------------------------------------
$Settings = $Config['Interface']['User']['Orders']['Domain']['DomainWhoIs'];
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$CacheID = Md5(SPrintF('WhoIs-%s.%s', $DomainName, $DomainZone));
#-------------------------------------------------------------------------------
$IsCheck = CacheManager::get($CacheID);
#-------------------------------------------------------------------------------
if (!$IsCheck) {
    #-------------------------------------------------------------------------------
    $IsCheck = WhoIs_Check($DomainName, $DomainZone, $IsAvalible);
    #-------------------------------------------------------------------------------
    CacheManager::add($CacheID, $IsCheck, IntVal($Settings['CacheTime']));
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
switch (ValueOf($IsCheck)) {
    case 'error':
        return array('Status' => 'Fail');
    case 'exception':
        return $IsCheck;
    case 'false':
        return new gException('DOMAIN_ZONE_NOT_SUPPORTED', 'Доменная зона не поддерживается');
    case 'array':
        #-------------------------------------------------------------------------------
        $IsCheck['Status'] = 'Borrowed';
        #-------------------------------------------------------------------------------
        return $IsCheck;
Ejemplo n.º 22
0
/******************************************************************************/
if (Is_Error(System_Load('modules/Authorisation.mod', 'classes/Session.class.php'))) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Session = new Session((string) @$_COOKIE['SessionID']);
#-------------------------------------------------------------------------------
if (Is_Error($Session->Delete())) {
    return ERROR | @Trigger_Error(400);
}
#-------------------------------------------------------------------------------
if (!SetCookie('SessionID', 'closed', Time(), '/')) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Event = array('UserID' => $GLOBALS['__USER']['ID'], 'Text' => 'Пользователь вышел из системы');
#-------------------------------------------------------------------------------
$Event = Comp_Load('Events/EventInsert', $Event);
if (!$Event) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
CacheManager::add(Md5(SPrintF('LastLogon_%s', $GLOBALS['__USER']['Email'])), FALSE, 1);
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return array('Status' => 'Ok');
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Ejemplo n.º 23
0
function WebNames_Get_List_Domains($Settings)
{
    /******************************************************************************/
    $__args_types = array('array', 'string');
    #-------------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /******************************************************************************/
    # ввиду того, что вебнеймс интерфейса нормального не предоставляет, а за частые
    # запросы банит, кэшируем полученный результат и юазем кэш
    $CacheID = Md5(SPrintF('%s-pispAllDomainsInfo', $Settings['Login']));
    #-------------------------------------------------------------------------------
    $Result = CacheManager::get($CacheID);
    #-------------------------------------------------------------------------------
    # если результата нет - лезем в вебнеймс
    if (!$Result) {
        #-------------------------------------------------------------------------------
        $HTTP = WebNames_Build_HTTP($Settings);
        #-------------------------------------------------------------------------------
        $Query = array('thisPage' => 'pispAllDomainsInfo', 'username' => $Settings['Login'], 'password' => $Settings['Password'], 'interface_revision' => 2, 'interface_lang' => 'en');
        #-------------------------------------------------------------------------------
        $Result = HTTP_Send('/RegTimeSRS.pl', $HTTP, array(), $Query);
        if (Is_Error($Result)) {
            return ERROR | @Trigger_Error('[WebNames_Get_List_Domains]: не удалось выполнить запрос к серверу');
        }
        #-------------------------------------------------------------------------------
        $Result = Json_Decode($Result['Body'], TRUE);
        #-------------------------------------------------------------------------------
        #Debug(SPrintF('[system/libs/WebNames.php]: $Result = %s',print_r($Result,true)));
        #-------------------------------------------------------------------------------
        #-------------------------------------------------------------------------------
        if (isset($Result['error'])) {
            return new gException('REGISTRATOR_ERROR', 'Регистратор вернул ошибку');
        }
        #-------------------------------------------------------------------------------
        if (!isset($Result['success'])) {
            return ERROR | @Trigger_Error('[WebNames_Get_List_Domains]: неизвестный ответ');
        }
        #-------------------------------------------------------------------------------
        # кэшируем полученный результат
        CacheManager::add($CacheID, $Result, 3600);
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    # перебираем массив, составляем массив на выхлоп функции
    $Out = array();
    #-------------------------------------------------------------------------------
    if (Is_Array($Result['success'])) {
        #-------------------------------------------------------------------------------
        foreach ($Result['success'] as $Domain) {
            #-------------------------------------------------------------------------------
            Debug(SPrintF('[system/libs/WebNames.php]: $Domain = %s', print_r($Domain, true)));
            #-------------------------------------------------------------------------------
            $Out[] = $Domain['dname'];
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    if (SizeOf($Out)) {
        #-------------------------------------------------------------------------------
        return array('Status' => 'true', 'Domains' => $Out);
        #-------------------------------------------------------------------------------
    } else {
        #-------------------------------------------------------------------------------
        return array('Status' => 'false', 'ErrorText' => 'No domains on account');
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
}