public function Load() { #----------------------------------------------------------------------------- $SessionID = $this->SessionID; #----------------------------------------------------------------------------- if (!$SessionID) { return FALSE; } #----------------------------------------------------------------------------- $Tmp = System_Element('tmp'); if (Is_Error($Tmp)) { return ERROR | @Trigger_Error('[Session->Load]: не удалось найти временную папку'); } #----------------------------------------------------------------------------- $Path = SPrintF('%s/sessions/%s', $Tmp, $SessionID); #----------------------------------------------------------------------------- if (!File_Exists($Path)) { return FALSE; } #----------------------------------------------------------------------------- $Content = IO_Read($Path); if (Is_Error($Content)) { return ERROR | @Trigger_Error('[Session->Load]: не удалось прочитать файл сессии'); } #----------------------------------------------------------------------------- #$this->Data = @UnSerialize($Content); $this->Data = @JSON_Decode($Content, true); if ($this->Data === FALSE) { return ERROR | @Trigger_Error('[Session->Load]: не удалось восстановить данные из файла сессии'); } #----------------------------------------------------------------------------- return TRUE; }
public function Query() { $Length = StrLen($this->ServerIP); $Data = Pack('cccca*', HexDec($Length), 0, 0x4, $Length, $this->ServerIP) . Pack('nc', $this->ServerPort, 0x1); Socket_Send($this->Socket, $Data, StrLen($Data), 0); // handshake Socket_Send($this->Socket, "", 2, 0); // status ping $Length = $this->ReadVarInt(); // full packet length if ($Length < 10) { return FALSE; } Socket_Read($this->Socket, 1); // packet type, in server ping it's 0 $Length = $this->ReadVarInt(); // string length $Data = Socket_Read($this->Socket, $Length, PHP_NORMAL_READ); // and finally the json string if ($Data === FALSE) { throw new MinecraftPingException('Server didn\'t return any data'); } $Data = JSON_Decode($Data, true); if (JSON_Last_Error() !== JSON_ERROR_NONE) { if (Function_Exists('json_last_error_msg')) { throw new MinecraftPingException(JSON_Last_Error_Msg()); } else { throw new MinecraftPingException('JSON parsing failed'); } return FALSE; } return $Data; }
function Upload_Get($Name, $Hash = FALSE) { /****************************************************************************/ #$__args_types = Array('string'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $Args = Args(); #----------------------------------------------------------------------------- $Hash = isset($Args[$Name]) ? $Args[$Name] : $Hash; #----------------------------------------------------------------------------- if (!$Hash) { return new gException('HASH_IS_EMPTY', 'Хешь файла загрузки пуст'); } #----------------------------------------------------------------------------- $Tmp = System_Element('tmp'); if (Is_Error($Tmp)) { return ERROR | @Trigger_Error('[Upload_Get]: не удалось получить путь до временной директории'); } #----------------------------------------------------------------------------- $Uploads = SPrintF('%s/uploads', $Tmp); #----------------------------------------------------------------------------- if (!File_Exists($Uploads)) { return new gException('HASH_IS_EMPTY', 'Директория файлов загрузки не создана'); } #----------------------------------------------------------------------------- $Path = SPrintF('%s/%s', $Uploads, $Hash); #----------------------------------------------------------------------------- if (!File_Exists($Path)) { return new gException('FILE_NOT_FOUND', 'Файл не найден на сервере'); } #----------------------------------------------------------------------------- $Data = IO_Read($Path); if (Is_Error($Data)) { return ERROR | @Trigger_Error('[Upload_Get]: не удалось прочитать файл'); } #----------------------------------------------------------------------------- $Names = IO_Read(SPrintF('%s/names.txt', $Uploads)); if (Is_Error($Names)) { return ERROR | @Trigger_Error('[Upload_Get]: не удалось прочитать файл имен'); } #----------------------------------------------------------------------------- $Names = JSON_Decode($Names, TRUE); #----------------------------------------------------------------------------- $Name = isset($Names[$Hash]) ? $Names[$Hash] : 'Default'; #----------------------------------------------------------------------------- return array('Name' => $Name, 'Data' => $Data); }
function HandleNews($Data, $Code) { if ($Code !== 200) { return; } global $PSA, $m; $Data = JSON_Decode($Data, true); if ($Data === false || empty($Data)) { $m->set('mc_status_mojang', '', 300); return; } $PSA = ''; foreach ($Data as $Message) { if ($Message['game'] !== 'Minecraft') { continue; } if (!empty($PSA)) { $PSA .= '<hr class="dotted">'; } $PSA .= '<h3 style="margin-top:0">' . HTMLEntities($Message['headline']) . ' <span class="muted" style="font-weight:400">(from <a href="http://help.mojang.com/">help.mojang.com</a>)</span></h3>' . $Message['message']; } $m->set('mc_status_mojang', $PSA, 300); }
#------------------------------------------------------------------------------- #------------------------------------------------------------------------------- echo "Запрос обновлений\n"; #------------------------------------------------------------------------------- $Config = Config(); #------------------------------------------------------------------------------- $Server = $Config['Update']['Server']; #------------------------------------------------------------------------------- $Answer = HTTP_Send('/GetUpdate', $Server, array('HostsIDs' => Implode(',', $HostsIDs)), array('Snapshot' => JSON_Encode($Snapshot))); if (Is_Error($Answer)) { return "ERROR: не удалось выполнить запрос к серверу\n"; } #------------------------------------------------------------------------------- echo "Ответ получен\n--\n"; #------------------------------------------------------------------------------- $Answer = @JSON_Decode($Answer['Body'], TRUE); if (!Is_Array($Answer)) { return SPrintF("---\n%s\n---\n", Implode("\n", Array_Slice($__SYSLOG, Count($__SYSLOG) - 20))); } #------------------------------------------------------------------------------- switch ($Answer['Status']) { case 'Error': return SPrintF("---\n%s\n---\n", Implode("\n", Array_Slice($__SYSLOG, Count($__SYSLOG) - 20))); case 'Exception': #------------------------------------------------------------------------------- $Exception = $Answer['Exception']; #------------------------------------------------------------------------------- return SPrintF("%s\n", $Exception['String']); #------------------------------------------------------------------------------- break; #-------------------------------------------------------------------------------
} else { #------------------------------------------------------------------------------- $CollationID = DB_Insert('PaymentSystemsCollation', $UCollation); if (Is_Error($CollationID)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Answer['CollationID'] = $CollationID; #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- if (Is_Error(DB_Commit($TransactionID))) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- if ($Window) { #------------------------------------------------------------------------------- $Window = JSON_Decode(Base64_Decode($Window), TRUE); #------------------------------------------------------------------------------- $Window['Args']['CollationID'] = $CollationID; #------------------------------------------------------------------------------- $Answer = array('Status' => 'Window', 'Window' => $Window); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- return $Answer; #------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
<?php #------------------------------------------------------------------------------- /** @author Великодный В.В. (Joonte Ltd.) */ /******************************************************************************/ /******************************************************************************/ $__args_list = array('Value'); /******************************************************************************/ eval(COMP_INIT); /******************************************************************************/ /******************************************************************************/ $Result = JSON_Decode($Value, TRUE); if ($Result === FALSE) { return ERROR | @Trigger_Error(400); } #------------------------------------------------------------------------------- return $Result; #-------------------------------------------------------------------------------
function Started_Contract_Register($Settings, $PepsonID, $Person, $DomainZone) { /****************************************************************************/ $__args_types = array('array', 'string', 'array', 'string'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $HTTP = array('Protocol' => $Settings['Protocol'], 'Port' => $Settings['Port'], 'Address' => $Settings['Address'], 'Host' => $Settings['Address'], 'IsLogging' => $Settings['Params']['IsLogging']); #----------------------------------------------------------------------------- $Reseller = new Tag('reseller'); $Reseller->AddChild(new Tag('login', $Settings['Login'])); $Reseller->AddChild(new Tag('password', $Settings['Password'])); #----------------------------------------------------------------------------- $Tmp = System_Element('tmp'); if (Is_Error($Tmp)) { return ERROR | @Trigger_Error(500); } #----------------------------------------------------------------------------- $pCountry = isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry']; #----------------------------------------------------------------------------- $Path = SPrintF('%s/started/states[%s].json', $Tmp, $pCountry); #----------------------------------------------------------------------------- if (File_Exists($Path)) { #--------------------------------------------------------------------------- $States = IO_Read($Path); if (Is_Error($States)) { return ERROR | @Trigger_Error(500); } #--------------------------------------------------------------------------- $States = JSON_Decode($States, TRUE); if (!$States) { return ERROR | @Trigger_Error(500); } } else { #--------------------------------------------------------------------------- $Request = new Tag('RequestBody', $Reseller); #--------------------------------------------------------------------------- $objCountry = new Tag('objCountry'); $objCountry->AddChild(new Tag('method', 'getRegions')); $objCountry->AddChild(new Tag('country', $pCountry)); #--------------------------------------------------------------------------- $Request->AddChild($objCountry); #--------------------------------------------------------------------------- $Post = SprintF("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n%s", $Request->ToXMLString()); #--------------------------------------------------------------------------- $Responce = HTTP_Send('/', $HTTP, array(), $Post, array('Content-type: text/xml')); if (Is_Error($Responce)) { return ERROR | @Trigger_Error(500); } #--------------------------------------------------------------------------- $Response = Trim($Responce['Body']); #--------------------------------------------------------------------------- $Answer = String_XML_Parse($Response); if (Is_Exception($Answer)) { return new gException('WRONG_ANSWER', $Response, $Answer); } #--------------------------------------------------------------------------- $States = Current($States->ToArray('item')); #--------------------------------------------------------------------------- $IsWrite = IO_Write($Path, JSON_Encode($States), TRUE); if (Is_Error($IsWrite)) { return ERROR | @Trigger_Error(500); } } #----------------------------------------------------------------------------- $objUser = new Tag('objUser'); $objUser->AddChild(new Tag('method', 'create')); #----------------------------------------------------------------------------- $objUser->AddChild(new Tag('email', $Person['Email'])); $objUser->AddChild(new Tag('password', SubStr(Md5(UniqID()), -8))); #----------------------------------------------------------------------------- $IsRussian = In_Array(isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry'], array('RU', 'BY', 'UA')); #----------------------------------------------------------------------------- switch ($PepsonID) { case 'Natural': #------------------------------------------------------------------------- $pStateID = 0; #------------------------------------------------------------------------- $pState = $Person['pState']; #------------------------------------------------------------------------- foreach ($States as $State) { #----------------------------------------------------------------------- if (Preg_Match(SPrintF('/%s/', StrToLower($State['title'])), StrToLower($pState))) { #--------------------------------------------------------------------- $pStateID = $State['id']; #--------------------------------------------------------------------- Debug(SPrintF('Найдена область: %s', $pStateID)); #--------------------------------------------------------------------- break; } } #------------------------------------------------------------------------- if (!$pStateID) { #----------------------------------------------------------------------- Debug(SPrintF('Область не найдена, проверьте название области (%s)', $pState)); #----------------------------------------------------------------------- return new gException('POST_REGION_NOT_FOUND', 'Область почтового адреса не найдена'); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('type', 'person')); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('fname', $Person['Name'])); $objUser->AddChild(new Tag('lname', $Person['Lastname'])); $objUser->AddChild(new Tag('mname', $Person['Sourname'])); $objUser->AddChild(new Tag('doc_issued', $Person['PasportWhom'])); } else { $objUser->AddChild(new Tag('fname', Translit($Person['Name']))); $objUser->AddChild(new Tag('lname', Translit($Person['Lastname']))); $objUser->AddChild(new Tag('mname', Translit($Person['Sourname']))); $objUser->AddChild(new Tag('doc_issued', Translit($Person['PasportWhom']))); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('p_inn', '')); $objUser->AddChild(new Tag('doc_serial', $Person['PasportLine'])); $objUser->AddChild(new Tag('doc_number', $Person['PasportNum'])); $objUser->AddChild(new Tag('doc_date', $Person['PasportDate'])); $objUser->AddChild(new Tag('birth_date', $Person['BornDate'])); #------------------------------------------------------------------------- $objUser->AddChild(new Tag('country', StrToLower(isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry']))); #------------------------------------------------------------------------- $objUser->AddChild(new Tag('zip', $Person['pIndex'])); $objUser->AddChild(new Tag('state', $pStateID)); $objUser->AddChild(new Tag('city_type', 'city')); $objUser->AddChild(new Tag('addr_type', StrToLower($Person['pType']))); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('city', $Person['pCity'])); $objUser->AddChild(new Tag('addr', SPrintF('%s %s', $Person['pType'], $Person['pAddress']))); } else { $objUser->AddChild(new Tag('city', Translit($Person['pCity']))); $objUser->AddChild(new Tag('addr', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])))); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('pzip', $Person['pIndex'])); $objUser->AddChild(new Tag('pstate', $pStateID)); $objUser->AddChild(new Tag('pcity_type', 'city')); $objUser->AddChild(new Tag('paddr_type', StrToLower($Person['pType']))); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('pcity', $Person['pCity'])); $objUser->AddChild(new Tag('paddr', SPrintF('%s %s', $Person['pType'], $Person['pAddress']))); $objUser->AddChild(new Tag('pto', $Person['pRecipient'])); } else { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('pcity', Translit($Person['pCity']))); $objUser->AddChild(new Tag('paddr', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])))); $objUser->AddChild(new Tag('pto', Translit($Person['pRecipient']))); } break; case 'Juridical': #------------------------------------------------------------------------- $objUser->AddChild(new Tag('type', 'organization')); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('fname', $Person['dName'])); $objUser->AddChild(new Tag('lname', $Person['dLastname'])); $objUser->AddChild(new Tag('mname', $Person['dSourname'])); $objUser->AddChild(new Tag('org', SPrintF('%s "%s"', $Person['CompanyFormFull'], $Person['CompanyName']))); } else { $objUser->AddChild(new Tag('fname', Translit($Person['dName']))); $objUser->AddChild(new Tag('lname', Translit($Person['dLastname']))); $objUser->AddChild(new Tag('mname', Translit($Person['dSourname']))); $objUser->AddChild(new Tag('org', SPrintF('%s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull'])))); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('o_inn', $Person['Inn'])); $objUser->AddChild(new Tag('kpp', $Person['Kpp'])); #------------------------------------------------------------------------- $objUser->AddChild(new Tag('country', StrToLower($Person['jCountry']))); #------------------------------------------------------------------------- $objUser->AddChild(new Tag('zip', $Person['jIndex'])); #------------------------------------------------------------------------- $jStateID = 0; #------------------------------------------------------------------------- $jState = $Person['jState']; #------------------------------------------------------------------------- foreach ($States as $State) { #----------------------------------------------------------------------- if (Preg_Match(SPrintF('/%s/', StrToLower($State['title'])), StrToLower($jState))) { #--------------------------------------------------------------------- $jStateID = $State['id']; #--------------------------------------------------------------------- Debug(SPrintF('Найдена область: %s', $jStateID)); #--------------------------------------------------------------------- break; } } #------------------------------------------------------------------------- if (!$jStateID) { #----------------------------------------------------------------------- Debug(SPrintF('Область не найдена, проверьте название области (%s)', $jState)); #----------------------------------------------------------------------- return new gException('JURIDICAL_REGION_NOT_FOUND', 'Область юридического адреса не найдена'); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('state', $jStateID)); $objUser->AddChild(new Tag('city_type', 'city')); $objUser->AddChild(new Tag('addr_type', StrToLower($Person['jType']))); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('city', $Person['jCity'])); $objUser->AddChild(new Tag('addr', SPrintF('%s %s', $Person['jType'], $Person['jAddress']))); } else { $objUser->AddChild(new Tag('city', Translit($Person['jCity']))); $objUser->AddChild(new Tag('addr', Translit(SPrintF('%s %s', $Person['jType'], $Person['jAddress'])))); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('pzip', $Person['pIndex'])); #------------------------------------------------------------------------- $pStateID = 0; #------------------------------------------------------------------------- $pState = $Person['pState']; #------------------------------------------------------------------------- foreach ($States as $State) { #----------------------------------------------------------------------- if (Preg_Match(SPrintF('/%s/', StrToLower($State['title'])), StrToLower($pState))) { #--------------------------------------------------------------------- $pStateID = $State['id']; #--------------------------------------------------------------------- Debug(SPrintF('Найдена область: %s', $pStateID)); #--------------------------------------------------------------------- break; } } #------------------------------------------------------------------------- if (!$pStateID) { #----------------------------------------------------------------------- Debug(SPrintF('Область не найдена, проверьте название области (%s)', $pState)); #----------------------------------------------------------------------- return new gException('POST_REGION_NOT_FOUND', 'Область почтового адреса не найдена'); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('pstate', $pStateID)); $objUser->AddChild(new Tag('pcity_type', 'city')); $objUser->AddChild(new Tag('paddr_type', StrToLower($Person['pType']))); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('pcity', $Person['pCity'])); $objUser->AddChild(new Tag('paddr', SPrintF('%s %s', $Person['pType'], $Person['pAddress']))); $objUser->AddChild(new Tag('pto', SPrintF('%s "%s"', $Person['CompanyFormFull'], $Person['CompanyName']))); } else { $objUser->AddChild(new Tag('pcity', Translit($Person['pCity']))); $objUser->AddChild(new Tag('paddr', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])))); $objUser->AddChild(new Tag('pto', SPrintF('%s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull'])))); } break; default: return ERROR | @Trigger_Error(101); } #----------------------------------------------------------------------------- $Phone = $Person['Phone']; #----------------------------------------------------------------------------- if ($Phone) { #--------------------------------------------------------------------------- $Phone = StrPBrk($Phone, ' '); #--------------------------------------------------------------------------- $objUser->AddChild(new Tag('tel', Trim($Phone))); } else { $objUser->AddChild(new Tag('tel')); } #----------------------------------------------------------------------------- $Fax = $Person['Fax']; #----------------------------------------------------------------------------- if ($Fax) { #--------------------------------------------------------------------------- $Fax = StrPBrk($Fax, ' '); #--------------------------------------------------------------------------- $objUser->AddChild(new Tag('fax', Trim($Fax))); } else { $objUser->AddChild(new Tag('fax')); } #----------------------------------------------------------------------------- $Request = new Tag('RequestBody', $Reseller); #----------------------------------------------------------------------------- $Request->AddChild($objUser); #----------------------------------------------------------------------------- $Post = SprintF("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n%s", $Request->ToXMLString()); #----------------------------------------------------------------------------- $Responce = HTTP_Send('/', $HTTP, array(), $Post, array('Content-type: text/xml; charset=utf-8')); if (Is_Error($Responce)) { return ERROR | @Trigger_Error(500); } #----------------------------------------------------------------------------- $Response = Trim($Responce['Body']); #----------------------------------------------------------------------------- $Answer = String_XML_Parse($Response); if (Is_Exception($Answer)) { return new gException('WRONG_ANSWER', $Response, $Answer); } #----------------------------------------------------------------------------- $Answer = $Answer->ToArray(); #----------------------------------------------------------------------------- $Answer = $Answer['AnswerBody']; #----------------------------------------------------------------------------- if (isset($Answer['statusCode'])) { return new gException('REGISTRATOR_ERROR', SPrintF('[%s]=(%s)', $Answer['statusCode'], $Answer['statusMessage'])); } #----------------------------------------------------------------------------- return array('TicketID' => $Answer['user_id']); }
private function HandleResponse($File, $Data) { if ($File === 'API/SupportedAPIList.json') { $Data = JSON_Decode($Data, true); if (!isset($Data['apilist']['interfaces'])) { return false; } foreach ($Data['apilist']['interfaces'] as $Interface) { $File = __DIR__ . '/API/' . $Interface['name'] . '.json'; $Interface = JSON_Encode($Interface, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . PHP_EOL; if (!File_Exists($File) || StrCmp(File_Get_Contents($File), $Interface) !== 0) { File_Put_Contents($File, $Interface); } } return true; } else { if ($File === 'ClientManifest/steam_client_publicbeta_osx' || $File === 'ClientManifest/steam_cmd_publicbeta_osx') { foreach ($this->ClientArchives as $Archive) { if (Preg_Match('/"' . Str_Replace('.', '\\.', $Archive) . '\\.([a-f0-9]{40})"/m', $Data, $Test) === 1) { $Test = $Test[1]; if (!isset($this->ETags[$Archive]) || $this->ETags[$Archive] !== $Test) { $this->Log('Downloading {lightblue}' . $Archive . '{normal} - checksum: ' . $Test); $this->ETags[$Archive] = $Test; $this->URLsToFetch[] = array('URL' => 'https://steamcdn-a.akamaihd.net/client/' . $Archive . '.' . $Test, 'File' => '.support/' . $Archive); } else { $this->Log('Matched {lightblue}' . $Archive . '{normal}, but we already have it cached'); } } else { $this->Log('{yellow}Failed to find {lightblue}' . $Archive); } } unset($Test); } else { if ($File === 'Random/ValveGroup.json' || $File === 'Random/SteamModerators.json') { LibXML_Use_Internal_Errors(true); $Data = SimpleXML_Load_String($Data); if ($Data === false || empty($Data->members->steamID64)) { return false; } $Data = Array_Values((array) $Data->members->steamID64); Sort($Data); $Data = JSON_Encode($Data, JSON_PRETTY_PRINT); } else { if ($File === 'Scripts/Dota2/heropickerdata.json') { $Data = JSON_Decode($Data, true); $Data = JSON_Encode($Data, JSON_PRETTY_PRINT); } else { if ($File === 'Scripts/Dota2/heropedia.js') { $Data = preg_replace('/\\?v=[0-9]+/', '?v=ayyvalve', $Data); } else { if (SubStr($File, 0, 13) === 'ItemSchemaURL') { $Data = JSON_Decode($Data, true); if (isset($Data['result']['items_game_url'])) { $this->URLsToFetch[] = array('URL' => $Data['result']['items_game_url'], 'File' => str_replace('ItemSchemaURL', 'ItemSchema', $File)); } return true; } else { if (SubStr($File, -4) === '.zip') { $File = __DIR__ . '/' . $File; File_Put_Contents($File, $Data); $Archive = SubStr(StrrChr($File, '/'), 1); if (SHA1_File($File) !== $this->ETags[$Archive]) { $this->Log('{lightred}Checksum mismatch for ' . $Archive); return false; } $this->ExtractClientArchives = true; return true; } else { if (SubStr($File, -5) === '.html') { if (StrrPos($Data, '</html>') === false) { return false; } } } } } } } } } $File = __DIR__ . '/' . $File; $Folder = dirname($File); if (!is_dir($Folder)) { $this->Log('{lightblue}Creating ' . $Folder); mkdir($Folder, 0755, true); } if (File_Exists($File) && StrCmp(File_Get_Contents($File), $Data) === 0) { return false; } File_Put_Contents($File, $Data); return true; }
if (isset($_SESSION['SteamID'])) { header('Location: /'); die; } if (isset($_GET['openid_identity'])) { $ErrorMessage = false; $CommunityID = SteamOpenID::ValidateLogin($ErrorMessage, SteamOpenID::GetHost()); if ($CommunityID === false) { echo $ErrorMessage === false ? 'Something went horribly wrong, please try again later.' : 'OpenID error: <b>' . htmlentities($ErrorMessage) . '</b>'; die; } $Config = json_decode(file_get_contents(__DIR__ . '/php/files/config.json')); $c = cURL_Init(); cURL_SetOpt_Array($c, array(CURLOPT_USERAGENT => 'Steam Database Party OpenID Login', CURLOPT_ENCODING => 'gzip', CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => 'https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?format=json&key=' . $Config->Steam->APIKey . '&steamids=' . $CommunityID, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5)); $Response = cURL_Exec($c); $Response = JSON_Decode($Response, true); cURL_Close($c); if (empty($Response) || !isset($Response['response']['players'][0])) { echo 'WebAPI failed.'; die; } $Response = $Response['response']['players'][0]; $_SESSION['SteamID'] = $CommunityID; $_SESSION['Name'] = $Response['personaname']; $_SESSION['Avatar'] = $Response['avatar']; header('Location: /'); } else { header('Location: ' . SteamOpenID::GenerateLoginURL('/login.php')); } class SteamOpenID {
$Template = System_XML(SPrintF('profiles/%s.xml', $TemplateID)); if (Is_Error($Template)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- if ($Simple) { #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Input', array('name' => 'Simple', 'type' => 'hidden', 'value' => $Simple)); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Form->AddChild($Comp); #------------------------------------------------------------------------------- $Simple = @JSON_Decode(Base64_Decode($Simple), TRUE); if (!$Simple) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- } else { #------------------------------------------------------------------------------- $Simple = array(); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $Attribs = $Template['Attribs']; #------------------------------------------------------------------------------- $Replace = Array_ToLine($__USER, '%'); #------------------------------------------------------------------------------- foreach (Array_Keys($Attribs) as $AttribID) {
$HostID = Next($Mathces); } if (Preg_Match('/^(.+)\\:[0-9]+$/', $HostID, $Mathces)) { $HostID = Next($Mathces); } Define('HOST_ID', $HostID); Define('SYSTEM_PATH', DirName(DirName(__FILE__))); Define('SETTINGS_FILE', SPrintF('%s/install.settings', SYSTEM_PATH)); Define('MY_CNF', SPrintF('%s/install.my.cnf', SYSTEM_PATH)); $__SETTINGS = array('db-server' => 'localhost', 'db-port' => '3306', 'db-type' => 'exists', 'db-root' => '', 'db-user' => 'jbs', 'db-password' => 'password', 'db-name' => 'jbs'); if (!isset($_GET['flush']) && File_Exists(SETTINGS_FILE)) { $__SETTINGS = @File_Get_Contents(SETTINGS_FILE); if (!$__SETTINGS) { Error(SPrintF('Не удалось прочитать файл конфигурации (%s)', SETTINGS_FILE)); } $__SETTINGS = JSON_Decode($__SETTINGS, TRUE); } $__STEP_ID = isset($_POST['step-id']) ? Max(0, $_POST['step-id']) : 0; echo <<<EOD <HTML> <HEAD> <TITLE>Установка биллинговой системы</TITLE> <META http-equiv="Content-Type" content="text/html; charset=utf-8" /> <LINK href="/styles/root/Css/Standard.css" rel="stylesheet" type="text/css" /> <SCRIPT type="text/javascript" src="/styles/root/Js/CheckBox.js"></SCRIPT> <STYLE>body {margin:10px;}</STYLE> </HEAD> <BODY> <TABLE class="Standard" cellspacing="5" cellpadding="0" style="max-width:600px;"> <CAPTION>Установка биллинговой системы Joonte Billing System 2007-2015</CAPTION> EOD;
private function CheckSession($Data) { $Data = JSON_Decode($Data, true); if (JSON_Last_Error() !== JSON_ERROR_NONE || !Array_Key_Exists('Status', $Data)) { return false; } return $Data['Status'] === 'OK'; }
#------------------------------------------------------------------------------- if (!File_Exists($Uploads)) { if (!@MkDir(SPrintF('%s/uploads', $Tmp), 0777, TRUE)) { return ERROR | @Trigger_Error(500); } } #------------------------------------------------------------------------------- if (!Copy($Path, SPrintF('%s/%s', $Uploads, $Hash))) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Name = $File['name']; #------------------------------------------------------------------------------- $NamesPath = SPrintF('%s/names.txt', $Uploads); #------------------------------------------------------------------------------- $Names = Is_Error($Names = IO_Read($NamesPath)) ? array() : JSON_Decode($Names, true); #------------------------------------------------------------------------------- $Names[$Hash] = $Name; #------------------------------------------------------------------------------- $IsWrite = IO_Write($NamesPath, JSON_Encode($Names), TRUE); if (Is_Error($IsWrite)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Size = Round($File['size'] / 1024); #------------------------------------------------------------------------------- # вывод для JS в браузере... if (!isset($GLOBALS['IsCron'])) { echo SPrintF('%s^%s^%s^', $Name, $Size, $Hash); } #-------------------------------------------------------------------------------