Exemplo n.º 1
0
function send_form($url, $_title, $_author, $_email = '*****@*****.**', $_link, $_filename)
{
    $post = array("action" => "save", "title" => utf8_to_cp1251($_title), "author" => utf8_to_cp1251($_author), "email" => $_email, "link" => $_link, "file" => "ufile", "rules_agree" => "1", "ufile" => "@{$_filename}");
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $postResult = curl_exec($ch);
    curl_close($ch);
    print "{$postResult}";
    return true;
}
Exemplo n.º 2
0
Arquivo: sql.php Projeto: GGF/oldbaza
	//header('Location: http://'.$_SERVER['HTTP_HOST'].'');
	echo "<script>window.location='http://".$_SERVER['HTTP_HOST']."'</script>";
}

function is_utf($t) { if (@preg_match ('/.+/u', $t)) return true; else return false; }

function utf8_to_cp1251($t) { return iconv("UTF-8", "CP1251", $t);}
function cp1251_to_utf8($t) { return iconv( "CP1251","UTF-8", $t);}

// запускается - не функция
if(!headers_sent()  && !isset($print)) {
	header('Content-type: text/html; charset=windows-1251');
}

foreach ($_GET as $key => $val) {
	if (is_utf($val)) 
		${$key}=utf8_to_cp1251($val);
}
foreach ($_POST as $key => $val) {
	if (is_utf($val)) 
		${$key}=utf8_to_cp1251($val);
}

importmodules();

if (!isset($dbname)) $dbname='zaompp';
if (!mySQLconnect()) {
	my_error('Not connect to base!');
}

?>
Exemplo n.º 3
0
                 $admin_name = htmlentities($result->admin_nick, ENT_QUOTES) . " (" . htmlentities($result2 ? $result2->nickname : "", ENT_QUOTES) . ")";
                 //$server_name = $result->server_name;
                 $server_name = cp1251_to_utf8($result->server_name);
             } else {
                 $admin_name = cp1251_to_utf8($result->admin_nick);
                 $server_name = "Website";
             }
             $ban_info = array("player_name" => $player_name, "player_id" => $player_id, "player_ip" => $playa_ip, "ban_start" => $ban_start, "ban_duration" => $ban_duration, "ban_end" => $ban_end, "ban_type" => $ban_type, "ban_reason" => $ban_reason, "admin_name" => $admin_name, "server_name" => $server_name);
         }
     }
 } else {
     if ($_POST['action'] == "apply") {
         $player_nick = $_POST['player_nick'];
         $ban_reason = $_POST['ban_reason'];
         $player_nick = utf8_to_cp1251($player_nick);
         $ban_reason = utf8_to_cp1251($ban_reason);
         if ($_POST['player_ip'] == "") {
             $resource = mysql_query("UPDATE `{$config->bans}` SET `player_ip` = NULL, `player_id` = '" . $_POST['player_id'] . "', `player_nick` = '{$player_nick}', `ban_type` = '" . $_POST['ban_type'] . "', `ban_reason` = '{$ban_reason}', `ban_length` = '" . min($_POST['ban_length'], 43800 * 3) . "' WHERE `bid` = '" . $_POST['bid'] . "'") or die(mysql_error());
             $superban = mysql_query("UPDATE `superban` SET `sid` = '" . $_POST['player_id'] . "', `banname` = '{$player_nick}', `reason` = '{$ban_reason}', `unbantime` = `bantime` + 60*'" . min($_POST['ban_length'], 43800 * 3) . "' WHERE `banname` = '{$superban_name}'") or die(mysql_error());
         } else {
             $resource = mysql_query("UPDATE `{$config->bans}` SET `player_ip` = '" . $_POST['player_ip'] . "', `player_id` = '" . $_POST['player_id'] . "', `player_nick` = '{$player_nick}', `ban_type` = '" . $_POST['ban_type'] . "', `ban_reason` = '{$ban_reason}', `ban_length` = '" . min($_POST['ban_length'], 43800 * 3) . "' WHERE `bid` = '" . $_POST['bid'] . "'") or die(mysql_error());
             $superban = mysql_query("UPDATE `superban` SET `ip` = '" . $_POST['player_ip'] . "', `ipcookie` = '" . $_POST['player_ip'] . "', `sid` = '" . $_POST['player_id'] . "', `banname` = '{$player_nick}', `reason` = '{$ban_reason}', `unbantime` = `bantime` + 60*'" . min($_POST['ban_length'], 43800 * 3) . "' WHERE `banname` = '{$superban_name}'") or die(mysql_error());
         }
         $now = date("U");
         $add_log = mysql_query("INSERT INTO {$config->logs} (timestamp, ip, username, action, remarks) VALUES ('{$now}', '" . $_SERVER['REMOTE_ADDR'] . "', '" . $_SESSION['uid'] . "', 'edit ban', 'Ban with BanID " . $_POST['bid'] . " (" . $_POST['player_id'] . ")(" . $_POST['player_ip'] . ") edited')") or die(mysql_error());
         $url = "{$config->document_root}";
         $delay = "0";
         //echo "Edited bid ".$_POST['bid'].". Redirecting...";
         echo "<meta http-equiv=\"refresh\" content=\"" . $delay . ";url='http://" . $_SERVER["HTTP_HOST"] . "{$url}'\">";
         exit;
     } else {
Exemplo n.º 4
0
 /**
  * @param string $LoginName
  * @param string $Password
  * @param string $Period
  * @return string $XML
  */
 function SDMRestAccount($LoginName, $Password, $Period = false)
 {
     $Dir_path = str_replace('\\', '/', __DIR__);
     $logger = new Logger('logger_service');
     $logger->pushHandler(new StreamHandler($Dir_path . '/../logs/sdm_json_debbug-' . $LoginName . '.log', Logger::DEBUG, false));
     $logger->pushHandler(new StreamHandler($Dir_path . '/../logs/sdm_json_error-' . $LoginName . '.log', Logger::WARNING, false));
     $logger->pushHandler(new StreamHandler($Dir_path . '/../logs/sdm_json_info-' . $LoginName . '.log', Logger::INFO, false));
     $logger->pushHandler(new FirePHPHandler());
     $logger->addInfo('------------------------------------------------------------------------------------------');
     $logger->addInfo('Start running SDMRestAccount class');
     $sLogin = $LoginName;
     $sPassword = $Password;
     $postData = 'password='******'&username='******'https://retail.sdm.ru/logon', true, $postData, false, '', 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)', 60);
     if (!$data) {
         $logger->addError('нет ответа от сервера');
         return 'нет ответа от сервера';
     }
     //echo($data);
     $logger->addDebug('Starting SDM Http trafic for: ' . $postData . '; Result Data:' . $data);
     $cookie = substr($data, strpos($data, 'cookie=') + 7, strlen($data));
     if (!$cookie) {
         $logger->addError('не смогли залогиниться - нет кукисов');
         return 'не смогли залогиниться - нет кукисов';
     }
     $logger->addDebug('Cookie- ' . $cookie);
     //$data=  http_requestSDM('https://retail.sdm.ru//user/confirmlogon',false,'','https://retail.sdm.ru','','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)',60);
     //echo $data;
     $RequestToken = str_replace('__RequestVerificationToken" type="hidden" value="', '', strstr($data, '__RequestVerificationToken" type="hidden" value="'));
     $RequestToken = substr($RequestToken, 0, strpos($RequestToken, '"'));
     //echo '$RequestToken='.$RequestToken;
     $postData = 'otp=&mode=nosms&returnUrl=&__RequestVerificationToken=' . $RequestToken;
     $data = http_requestSDM('https://retail.sdm.ru/user/confirmlogon', true, $postData, 'https://retail.sdm.ru', '', 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)', 60);
     //echo '$postData='.$postData;
     //echo $data;
     if (!$data) {
         $logger->addError('не можем получить информацию по счетам');
         return 'не можем получить информацию по счетам';
     }
     $json = array("AccountsList" => array(), "CardList" => array(), "AcountStatements" => array());
     $logger->addDebug('NEXT SDM Http trfafic; Result Data:' . $data);
     $body = substr($data, strpos($data, 'body=') + 5, strlen($body) - 8);
     //echo($body);
     $doc = new DOMDocument();
     libxml_use_internal_errors(true);
     $doc->loadHTML($body);
     libxml_clear_errors();
     $xpath = new DOMXPath($doc);
     $TableTrAccount = $xpath->query('//div[@class="Content-Center"]/div[1]//table/tr/td');
     $CountAccount = $TableTrAccount->length / 4;
     //По счетам
     $ArrayAccountID = array();
     for ($i = 0; $i < $CountAccount; $i++) {
         for ($j = 0; $j < 4; $j++) {
             $logger->addInfo('i=' . $i . ';j=' . $j . ';' . nodeContent($TableTrAccount->item($i * 4 + $j)));
             switch ($j) {
                 case 3:
                     $AccountId = str_replace('" "ajax-window"История платежей/a', '', str_replace('a href="/finances/account/', '', nodeContent($TableTrAccount->item($i * 4 + $j))));
                     $ArrayAccountID[] = $AccountId;
                     break;
                 default:
                     break;
             }
         }
     }
     $ArrayAccount = array();
     $logger->addInfo('$ArrayAccountID: ' . implode(' ', $ArrayAccountID));
     foreach ($ArrayAccountID as $ArrayAccountID_) {
         $logger->addInfo('Дергаем информацию по счету с ID=' . $ArrayAccountID_);
         $Start_date = date("d.m.Y", mktime(0, 0, 0, date("m"), date("d") - 1, date("Y")));
         switch ($Period) {
             case "7days":
                 $Start_date = date("d.m.Y", mktime(0, 0, 0, date("m"), date("d") - 7, date("Y")));
                 break;
             case "month":
                 $Start_date = date("d.m.Y", mktime(0, 0, 0, date("m") - 1, date("d"), date("Y")));
                 break;
             case "halfyear":
                 $Start_date = date("d.m.Y", mktime(0, 0, 0, date("m") - 6, date("d"), date("Y")));
                 break;
             case "year":
                 $Start_date = date("d.m.Y", mktime(0, 0, 0, date("m"), date("d"), date("Y") - 1));
                 break;
             case "5years":
                 $Start_date = date("d.m.Y", mktime(0, 0, 0, date("m"), date("d"), date("Y") - 5));
                 break;
             default:
                 break;
         }
         $postData = 'endDate=' . date("d.m.Y") . '&id=' . $ArrayAccountID_ . '&periodtype=&startDate=' . $Start_date;
         $logger->addInfo('PostData:' . $postData);
         $data = http_requestSDM('https://retail.sdm.ru/finances/account/' . $ArrayAccountID_, true, $postData, false, $cookie, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)', 120);
         $logger->addDebug('SDM extract account http trafic for: ' . $postData . '; Result Data:' . $data);
         if (!$data) {
             $logger->addError('не можем получить информацию по выписке');
             return 'не можем получить информацию по выписке';
         }
         $body = substr($data, strpos($data, 'body=') + 5, strlen($data) - 8 - strpos($data, 'body='));
         //$logger->addInfo( 'BODY_1='. $body );
         $doc->loadHTML($body);
         libxml_clear_errors();
         $xpath = new DOMXPath($doc);
         //Выписка
         $TableTrStatement = $xpath->query('/html/body/div/div[1]/form/div[4]/div[2]/table/tbody/tr/td');
         $TableTrStatementBlocking = $xpath->query('/html/body/div/div[1]/form/div[5]/table/tbody/tr/td');
         $StatementIncoming = $xpath->query('//*[@id="account_data"]/table/tr[2]/td[1]');
         $Account = $xpath->query('//*[@id="account_data"]/table/tr[1]/td[1]');
         $Account_ = utf8_decode($Account->item(0)->nodeValue);
         $ArrayAccount[] = array("AccountId" => $ArrayAccountID_, "Account" => substr($Account_, 0, strpos($Account_, " ")));
         $StatementIncoming_ = str_replace(chr(194), '', str_replace(chr(160), '', str_replace(chr(13), '', str_replace(chr(10), '', $StatementIncoming->item(0)->nodeValue))));
         $StatementIncoming_ = substr($StatementIncoming_, 0, strlen($StatementIncoming_) - strpos($StatementIncoming_, ' '));
         $StatementIncoming_float = floatval($StatementIncoming_);
         $td_count = 8;
         $CountStatement = ($TableTrStatement->length - 4) / $td_count;
         $CountStatementBlocking = $TableTrStatementBlocking->length / 3;
         $logger->addInfo('CountStatement:' . $CountStatement);
         $logger->addInfo('CountStatementBlocking:' . $CountStatementBlocking);
         $logger->addInfo('StatementIncoming:' . $StatementIncoming_);
         //$ExtractList=Array();
         /* foreach ($TableTrStatement as $tag1) {
                    $logger->addInfo('NodeContent1:'.(utf8_decode($tag1->nodeValue)));
            }*/
         //По выписке
         for ($i = 0; $i < $CountStatement; $i++) {
             //По td_count строчек в каждом table/tr
             for ($j = 0; $j < $td_count; $j++) {
                 $logger->addInfo('i=' . $i . ';j=' . $j . ';' . utf8_decode($TableTrStatement->item($i * $td_count + $j)->nodeValue) . '|');
                 switch ($j) {
                     case 0:
                         $DocumentDate = $TableTrStatement->item($i * $td_count + $j)->nodeValue;
                         break;
                     case 1:
                         $DocumentNumber = $TableTrStatement->item($i * $td_count + $j)->nodeValue;
                         break;
                     case 2:
                         $Debit = str_replace('P', '', cp1251_to_utf8(preg_replace('#\\s#', '', utf8_to_cp1251($TableTrStatement->item($i * $td_count + $j)->nodeValue))));
                         break;
                     case 3:
                         $Credit = str_replace('P', '', cp1251_to_utf8(preg_replace('#\\s#', '', utf8_to_cp1251($TableTrStatement->item($i * $td_count + $j)->nodeValue))));
                         break;
                     case 4:
                         $Ground = utf8_decode($TableTrStatement->item($i * $td_count + $j)->nodeValue);
                         break;
                     case 5:
                         $DateOperation = nodeContent($TableTrStatement->item($i * $td_count + $j));
                         break;
                     case 6:
                         $CardNumber = nodeContent($TableTrStatement->item($i * $td_count + $j));
                         break;
                     case 7:
                         $Ammount_Curr = $TableTrStatement->item($i * $td_count + $j)->nodeValue;
                         $StatementIncoming = $StatementIncoming_float;
                         break;
                     default:
                         break;
                 }
             }
             //$ExtractList[]=Array($ArrayAccountID_=>Array("DocumentDate"=>$DocumentDate,
             $ExtractList[] = array("DocumentDate" => $DocumentDate, "DocumentNumber" => $DocumentNumber, "Debit" => $Debit, "Credit" => $Credit, "Ground" => $Ground, "DateOperation" => $DateOperation, "Ammount_Curr" => $Ammount_Curr, "CardNumber" => $CardNumber, "StatementIncoming" => $StatementIncoming, "AbsId" => $ArrayAccountID_);
         }
         if (count($ExtractList) > 1) {
             $json["AcountStatements"] = $ExtractList;
             //unset($ExtractList);
         }
         //else $json["AcountStatements"][]=Array($ArrayAccountID_=>Array());
         /*        
                  //По блокировкам 
                $xmlAcountStatementsBlocking = $xml->createElement("AcountStatementsBlocking");
               
                $xmlAcountStatementsBlockingAttribute1= $xml->createAttribute("Count");
                $xmlAcountStatementsBlockingAttribute1->value=$CountStatementBlocking;
                $xmlAcountStatementsBlocking->appendChild($xmlAcountStatementsBlockingAttribute1);
                $xmlAcountStatementsBlockingAttribute2= $xml->createAttribute("AccountId");
                $xmlAcountStatementsBlockingAttribute2->value=$ArrayAccountID_;
                $xmlAcountStatementsBlocking->appendChild($xmlAcountStatementsBlockingAttribute2);
                $xmlRoot->appendChild($xmlAcountStatementsBlocking);
                $td_count=3;
                for ($i=0; $i<$CountStatementBlocking;$i++) {  //По td_count строчек в каждом table/tr
                  $xmlExtractBlockingList=$xml->createElement("ExtractBlockingList");
                  $xmlExtractBlockingListAttribute1= $xml->createAttribute("Count");
                  $xmlExtractBlockingListAttribute1->value=$CountStatementBlocking;
                  $xmlAcountStatementsBlocking->appendChild($xmlExtractBlockingListAttribute1);
                  $xmlAcountStatementsBlocking->appendChild($xmlExtractBlockingList);
                  for ($j = 0; $j < $td_count; $j++) //td_count <td>
                    {
                        switch ($j)
                             {                       
                              case 0:
                                     $xmlDocumentDateBlocking=$xml->createElement("DocumentDate");
                                     $xmlExtractBlockingList->appendChild($xmlDocumentDateBlocking);
                                     $xmlDocumentDateBlocking->nodeValue=utf8_decode($TableTrStatementBlocking->item($i*$td_count+j)->nodeValue);
                                     break;
                              case 1:
                                     $xmlAmountBlocking=$xml->createElement("AmountBlocking");
                                     $xmlExtractBlockingList->appendChild($xmlAmountBlocking);
                                     $xmlAmountBlocking->nodeValue=utf8_decode($TableTrStatementBlocking->item($i*$td_count+$j)->nodeValue);
                                     break;
                              case 2:
                                     $xmlWhereBlocking=$xml->createElement("WhereBlocking");
                                     $xmlExtractBlockingList->appendChild($xmlWhereBlocking);
                                     $xmlWhereBlocking->nodeValue=utf8_decode($TableTrStatementBlocking->item($i*$td_count+$j)->nodeValue);
                                     break;
                              default:
                                     break;
                              }
                      
                    }
                  } */
     }
     $data = http_requestSDM('https://retail.sdm.ru/', false, '', 'https://retail.sdm.ru', '', 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)', 60);
     if (!$data) {
         $logger->addError('не можем получить информацию по счетам');
         return 'не можем получить информацию по счетам';
     }
     $logger->addDebug('NEXT SDM Http trfafic; Result Data:' . $data);
     $body = substr($data, strpos($data, 'body=') + 5, -8);
     $doc = new DOMDocument();
     libxml_use_internal_errors(true);
     $doc->loadHTML($body);
     libxml_clear_errors();
     $xpath = new DOMXPath($doc);
     $TableTrAccount = $xpath->query('//div[@class="Content-Center"]/div[1]//table/tr/td');
     $TableTrCard = $xpath->query('//div[@class="Content-Center"]/div[2]//table/tr/td');
     if ($TableTrAccount->length > 1) {
         $CountAccount = $TableTrAccount->length / 4;
     } else {
         $CountAccount = 0;
     }
     if ($TableTrCard->length > 1) {
         $CountCard = $TableTrCard->length / 6;
     } else {
         $CountCard = 0;
     }
     $logger->addInfo('CountAccount=' . $CountAccount);
     $logger->addInfo('CountCard=' . $CountCard);
     //По счетам
     $ArrayAccountID = array();
     for ($i = 0; $i < $CountAccount; $i++) {
         for ($j = 0; $j < 4; $j++) {
             // $logger->addInfo('i='.$i.';j='.$j.';'.nodeContent($TableTrAccount->item($i*4+$j)));
             switch ($j) {
                 case 0:
                     $CurrCode = GetSdmTextFromAlt($TableTrAccount->item($i * 4));
                     break;
                 case 1:
                     $AccountName = $TableTrAccount->item($i * 4 + 1)->nodeValue;
                     //$AccountName=nodeContent($TableTrAccount->item($i*4 +j+1));
                     break;
                 case 2:
                     $Rest = HtmlToFloat($TableTrAccount->item($i * 4 + $j));
                     break;
                 case 3:
                     $AccountId = str_replace('" "ajax-window"История платежей/a', '', str_replace('a href="/finances/account/', '', nodeContent($TableTrAccount->item($i * 4 + $j))));
                     $ArrayAccountID[] = $AccountId;
                     break;
                 default:
                     break;
             }
         }
         foreach ($ArrayAccount as $ArrayAccount_) {
             if ($ArrayAccount_["AccountId"] == $AccountId) {
                 $Account = $ArrayAccount_["Account"];
             }
         }
         $json["AccountsList"][] = array("CurrCode" => $CurrCode, "AccountName" => $AccountName, "Account" => $Account, "Rest" => $Rest, "AcountID" => $AccountId);
         $Account = "";
     }
     //По картам
     for ($i = 0; $i < $CountCard; $i++) {
         for ($j = 0; $j < 6; $j++) {
             $logger->addInfo('i=' . $i . ';j=' . $j . ';' . nodeContent($TableTrCard->item($i * 6 + $j)));
             //  printf('i='.$i.';j='.$j.';'.nodeContent($TableTrCard->item($i*6+$j)).'<br>');
             switch ($j) {
                 case 0:
                     $CurrCodeCard = GetSdmTextFromAlt($TableTrCard->item($i * 6 + $j));
                     break;
                 case 1:
                     //$CardType=GetSdmTextFromAlt($TableTrCard->item($i*6+$j));
                     break;
                 case 2:
                     $CardType = $TableTrCard->item($i * 6 + $j)->nodeValue;
                     $CardID = GetSdmCardId($TableTrCard->item($i * 6 + $j));
                     break;
                 case 4:
                     $RestCard = nodeContent($TableTrCard->item($i * 6 + $j));
                     break;
                 case 5:
                     $CardClose = str_replace('срок действия: ', '', nodeContent($TableTrCard->item($i * 6 + $j)));
                     break;
                 default:
                     break;
             }
         }
         $json["CardList"][] = array("CurrCode" => $CurrCodeCard, "CardType" => $CardType, "CardID" => $CardID, "RestCard" => $Rest, "CardClose" => $CardClose);
     }
     $logger->addInfo('Good result: ' . Json::json_encode($json));
     $logger->addInfo('End SDMRestAccount class');
     return Json::json_encode($json);
 }