Utf8 convert
This commit is contained in:
@@ -1,43 +1,43 @@
|
||||
<?php
|
||||
|
||||
/**@deprecated âðîäå íèãäå íå âûçûâàåòñÿ, íèêåì íå èñïîëüçóåòñÿ */
|
||||
/**@deprecated вроде нигде не вызывается, никем не используется */
|
||||
class GameDealer
|
||||
{
|
||||
//Êîíôèãóðàöèè
|
||||
//Конфигурации
|
||||
private $c = [
|
||||
'db_name' => 'pay_operations', //Òàáëèöà â êîòîðóþ çàíîñÿòñÿ äàííûå
|
||||
'db_name' => 'pay_operations', //Таблица в которую заносятся данные
|
||||
'db_host' => 'localhost',
|
||||
'db_user' => 'newcom1_abk',
|
||||
'db_pass' => '4nWYsIM[c?}P',
|
||||
'db_base' => 'newcom1_abk', /* Íàñòðîéêè ïëàòåæåé */
|
||||
'ip_list' => ['127,0,0,1,188.166.34.68,136.243.38.147,136.243.38.149,136.243.38.150,136.243.38.151,136.243.38.189,88.198.88.98'], //Óêàçûâàòü ÷åðåç çàïÿòóþ (Ðàçðåøåííûå IP)
|
||||
'db_base' => 'newcom1_abk', /* Настройки платежей */
|
||||
'ip_list' => ['127,0,0,1,188.166.34.68,136.243.38.147,136.243.38.149,136.243.38.150,136.243.38.151,136.243.38.189,88.198.88.98'], //Указывать через запятую (Разрешенные IP)
|
||||
'key' => 'qtzl0igb', //gamedealer key
|
||||
'id' => '65643' //ID ïðîåêòà
|
||||
], $BACK = []; //Ðåçóëüòàò êîòîðûé âîçâðàùàåì â êîíöå
|
||||
'id' => '65643' //ID проекта
|
||||
], $BACK = []; //Результат который возвращаем в конце
|
||||
|
||||
//Êîäèðóåì èç ÞÒÔ-8 â Êèðèëèöó
|
||||
//Кодируем из ЮТФ-8 в Кирилицу
|
||||
public function in($text)
|
||||
{
|
||||
return iconv("UTF-8", "cp1251", $text);
|
||||
}
|
||||
|
||||
//Êîäèðóåì èç Êèðèëèöó â ÞÒÔ-8
|
||||
//Кодируем из Кирилицу в ЮТФ-8
|
||||
public function out($text)
|
||||
{
|
||||
return iconv("cp1251", "UTF-8", $text);
|
||||
}
|
||||
|
||||
//Äîáàâëÿåì äàííûå â áàçó äàííûõ
|
||||
//Добавляем данные в базу данных
|
||||
public function add($type, $value, $money)
|
||||
{
|
||||
mysql_query('INSERT INTO `' . $this->c['db_name'] . '` (`time`,`type`,`ip`,`value`,`money`,`project`) VALUES ("' . time() . '","' . mysql_real_escape_string($type) . '","' . $_SERVER['HTTP_X_REAL_IP'] . '","' . mysql_real_escape_string($value) . '","' . mysql_real_escape_string($money) . '","' . mysql_real_escape_string($this->id) . '")');
|
||||
}
|
||||
|
||||
//Ïîäêëþ÷àåìñÿ ê áàçå äàííûõ
|
||||
//Подключаемся к базе данных
|
||||
public function connect_db()
|
||||
{
|
||||
$db = mysql_connect($this->c['db_host'], $this->c['db_user'], $this->c['db_pass']) or die('Îøèáêà ïîäêëþ÷åíèÿ ê MySQL ñåðâåðó!');
|
||||
mysql_select_db($this->c['db_base'], $db) or die('Îøèáêà ïîäêëþ÷åíèÿ ê áàçå äàííûõ!');
|
||||
$db = mysql_connect($this->c['db_host'], $this->c['db_user'], $this->c['db_pass']) or die('Ошибка подключения к MySQL серверу!');
|
||||
mysql_select_db($this->c['db_base'], $db) or die('Ошибка подключения к базе данных!');
|
||||
mysql_query('SET NAMES cp1251');
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ class GameDealer
|
||||
return $r;
|
||||
}
|
||||
|
||||
//Ãåíåðèðóåì XML-ôàéë
|
||||
//Генерируем XML-файл
|
||||
public function backInformation()
|
||||
{
|
||||
header('Content-Type: text/html/force-download');
|
||||
@@ -77,7 +77,7 @@ class GameDealer
|
||||
echo $this->output($this->BACK, 1);
|
||||
}
|
||||
|
||||
//Ïðîâåðêà ñóùåñòâîâàíèÿ ïåðñîíàæà
|
||||
//Проверка существования персонажа
|
||||
public function test_accaunt($nick)
|
||||
{
|
||||
$r = false;
|
||||
@@ -88,7 +88,7 @@ class GameDealer
|
||||
return $r;
|
||||
}
|
||||
|
||||
//Ïîëó÷àåò ñ÷åò â áàíêå ïî ëîãèíó
|
||||
//Получает счет в банке по логину
|
||||
public function getBank($nick)
|
||||
{
|
||||
$nick = mysql_fetch_array(mysql_query('SELECT `id` FROM `users` WHERE `login` = "' . mysql_real_escape_string($nick) . '" LIMIT 1'));
|
||||
@@ -96,7 +96,7 @@ class GameDealer
|
||||
return $nick['id'];
|
||||
}
|
||||
|
||||
//Ïîèñê ëîãèíà
|
||||
//Поиск логина
|
||||
public function bank_user($nick)
|
||||
{
|
||||
$nick = mysql_fetch_array(mysql_query('SELECT `id`,`uid FROM `bank` WHERE `id` = "' . mysql_real_escape_string($nick) . '" LIMIT 1'));
|
||||
@@ -104,79 +104,79 @@ class GameDealer
|
||||
return $nick['login'];
|
||||
}
|
||||
|
||||
//Íà÷èíàåì îáðàáîòêó çàïðîñîâ
|
||||
//Начинаем обработку запросов
|
||||
public function start_session()
|
||||
{
|
||||
|
||||
$ip = '';
|
||||
$ip = $_SERVER['HTTP_X_REAL_IP'];
|
||||
|
||||
//Ïîäêëþ÷àåìñÿ ê ÁÄ
|
||||
//Подключаемся к БД
|
||||
$this->connect_db();
|
||||
|
||||
//Ïîëó÷àåì äàííûå çàïðîñà
|
||||
//Получаем данные запроса
|
||||
//$xml = file_get_contents('php://input');
|
||||
|
||||
//Ïàðñèíã XML çàïðîñà
|
||||
//Парсинг XML запроса
|
||||
if (function_exists('simplexml_load_string')) {
|
||||
$xml = simplexml_load_string($xml);
|
||||
} else {
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Íå óäàëîñü ïðîèçâåñòè îáðàáîòêó çàïðîñà']]]];
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Не удалось произвести обработку запроса']]]];
|
||||
die($this->backInformation());
|
||||
}
|
||||
|
||||
$this->id = $xml->projectid;
|
||||
|
||||
if (!in_array($ip, $this->c['ip_list'])) {
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Íåò äîñòóïà ñ äàííîãî IP']]]];
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Нет доступа с данного IP']]]];
|
||||
die($this->backInformation());
|
||||
}
|
||||
|
||||
//Îáðàáîòêà çàïðîñîâ
|
||||
//Обработка запросов
|
||||
if ($xml->method == 'check_balance') {
|
||||
//<sign>MD5(method+MD5(gdKey))</sign>
|
||||
|
||||
$sign = md5($xml->method . md5($this->c['key']));
|
||||
|
||||
if ($sign == $xml->sign) {
|
||||
//Áàëàíñ äèëåðà
|
||||
//Баланс дилера
|
||||
$balance = 1000000;
|
||||
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Áàëàíñ äèëåðà: ' . $balance], ['balance', $balance]]]];
|
||||
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Баланс дилера: ' . $balance], ['balance', $balance]]]];
|
||||
$this->add('4', 'check:' . $xml->nick . ':1' . $r, 0);
|
||||
}
|
||||
|
||||
} elseif ($xml->method == 'check') {
|
||||
/*
|
||||
nick - ëîãèí ïåðñîíàæà <sign>MD5(nick+method+MD5(gdKey))</sign> */
|
||||
nick - логин персонажа <sign>MD5(nick+method+MD5(gdKey))</sign> */
|
||||
|
||||
$sign = md5($xml->nick . $xml->method . md5($this->c['key']));
|
||||
|
||||
if ($sign == $xml->sign) {
|
||||
$xml->nick = $this->in($xml->nick);
|
||||
if ($this->test_accaunt($xml->nick) == true) {
|
||||
//Ïåðñîíàæ íàéäåí è çà÷èñëÿåì åìó èãðîâóþ âàëþòó
|
||||
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Áàíêîâñêèé ñ÷åò íàéäåí']]]];
|
||||
//Персонаж найден и зачисляем ему игровую валюту
|
||||
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Банковский счет найден']]]];
|
||||
$this->add('3', 'check:' . $xml->nick . ':1' . $r, 0);
|
||||
} else {
|
||||
//Ïåðñîíàæ íå íàéäåí
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ïëàòåæ íå îáðàáîòàí. Áàíêîâñêèé ñ÷åò íå íàéäåí.']]]];
|
||||
$this->add('-1', 'Ïåðñîíàæ íå íàéäåí:pay:' . $xml->nick . ':0', 0);
|
||||
//Персонаж не найден
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Банковский счет не найден.']]]];
|
||||
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
|
||||
}
|
||||
}
|
||||
} elseif ($xml->method == 'pay') {
|
||||
/* Ïðîâîäèì ïëàòåæ
|
||||
nick - ëîãèí àêêàóíòà , projectid - id ïðîåêòà , sign , amount - äåíüãè , payid - id ïëàòåæà */
|
||||
/* Проводим платеж
|
||||
nick - логин аккаунта , projectid - id проекта , sign , amount - деньги , payid - id платежа */
|
||||
|
||||
$sign = md5($xml->nick . $xml->projectid . $xml->amount . $xml->payid . $xml->method . md5($this->c['key']));
|
||||
|
||||
if ($sign == $xml->sign) {
|
||||
$xml->nick = $this->in($xml->nick);
|
||||
if ($this->test_accaunt($xml->nick)) {
|
||||
//Ïåðñîíàæ íàéäåí è çà÷èñëÿåì åìó èãðîâóþ âàëþòó
|
||||
//Персонаж найден и зачисляем ему игровую валюту
|
||||
$bank = $this->test_accaunt($xml->nick);
|
||||
if ($bank > 0) {
|
||||
mysql_query('UPDATE `bank` SET `money2` = `money2` + ' . mysql_real_escape_string($xml->amount) . ' WHERE `id` = "' . mysql_real_escape_string($xml->nick) . '" LIMIT 1');
|
||||
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Ïëàòåæ ïðîøåë óñïåøíî'], ['id', $this->c['id']]]]];
|
||||
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Платеж прошел успешно'], ['id', $this->c['id']]]]];
|
||||
$this->add('2', 'pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
|
||||
|
||||
$user = mysql_fetch_array(mysql_query('SELECT `id`,`uid` FROM `bank` WHERE `id` = "' . mysql_real_escape_string($xml->nick) . '" LIMIT 1'));
|
||||
@@ -184,59 +184,59 @@ class GameDealer
|
||||
|
||||
mysql_query('UPDATE `users` SET `catch` = `catch` + ' . mysql_real_escape_string(floor($xml->amount)) . ' WHERE `id` = "' . mysql_real_escape_string($xml->nick) . '" LIMIT 1');
|
||||
|
||||
$r = '<span class=date>' . date('d.m.Y H:i') . '</span> Àëõèìèê <img src=https://img.new-combats.com/i/align/align50.gif width=12 height=15 /><u><b>Enchanter</b> / Àâòîìàòè÷åñêàÿ îïëàòà</u> ñîîáùàåò: ';
|
||||
$r = '<span class=date>' . date('d.m.Y H:i') . '</span> Алхимик <img src=https://img.new-combats.com/i/align/align50.gif width=12 height=15 /><u><b>Enchanter</b> / Автоматическая оплата</u> сообщает: ';
|
||||
|
||||
if ($user['sex'] == 1) {
|
||||
$r .= 'Óâàæàåìàÿ';
|
||||
$r .= 'Уважаемая';
|
||||
} else {
|
||||
$r .= 'Óâàæàåìûé';
|
||||
$r .= 'Уважаемый';
|
||||
}
|
||||
|
||||
$r .= ' <b>' . $user['login'] . '</b>, íà Âàø áàíêîâñêèé ñ÷åò ¹' . $bank . ' çà÷èñëåíî ' . $xml->amount . ' Ekr. Áëàãîäàðèì Âàñ çà ïîêóïêó!';
|
||||
$r .= ' <b>' . $user['login'] . '</b>, на Ваш банковский счет №' . $bank . ' зачислено ' . $xml->amount . ' Ekr. Благодарим Вас за покупку!';
|
||||
|
||||
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $user['city'] . "','" . $user['room'] . "','','" . $user['login'] . "','" . $r . "','-1','5','0')");
|
||||
|
||||
} else {
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ó ïîëüçîâàòåëÿ îòñóòñòâóåò áàíê'], ['id', $this->c['id']]]]];
|
||||
$this->add('-1', 'Ó ïåðñîíàæà îòñóòñòâóåò áàíê:pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'У пользователя отсутствует банк'], ['id', $this->c['id']]]]];
|
||||
$this->add('-1', 'У персонажа отсутствует банк:pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
|
||||
}
|
||||
} else {
|
||||
//Ïåðñîíàæ íå íàéäåí
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ïëàòåæ íå îáðàáîòàí. Ïåðñîíàæ íå íàéäåí.']]]];
|
||||
$this->add('-1', 'Ïåðñîíàæ íå íàéäåí:pay:' . $xml->nick . ':0', 0);
|
||||
//Персонаж не найден
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Персонаж не найден.']]]];
|
||||
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
|
||||
}
|
||||
} else {
|
||||
//Îøèáêà ñèãíàòóðû
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Îøèáêà ñèãíàòóðû']]]];
|
||||
$this->add('-1', 'Îøèáêà ñèãíàòóðû:pay:' . $xml->nick . ':0', 0);
|
||||
//Ошибка сигнатуры
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
|
||||
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
|
||||
}
|
||||
} elseif ($xml->method == 'check_login') {
|
||||
/* Ïðîâåðêà àêêàóíòà
|
||||
nick - ëîãèí àêêàóíòà , projectid - id ïðîåêòà , sign */
|
||||
/* Проверка аккаунта
|
||||
nick - логин аккаунта , projectid - id проекта , sign */
|
||||
$sign = md5($xml->nick . $xml->method . md5($this->c['key']));
|
||||
|
||||
if ($sign == $xml->sign) {
|
||||
$xml->nick = $this->in($xml->nick);
|
||||
if ($this->test_accaunt($xml->nick)) {
|
||||
//Ïåðñîíàæ íàéäåí
|
||||
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Ñ÷åò íàéäåí'], ['addinfo', $this->bank_user($xml->nick)]]]];
|
||||
//Персонаж найден
|
||||
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Счет найден'], ['addinfo', $this->bank_user($xml->nick)]]]];
|
||||
$this->add('1', 'check_login:' . $xml->nick . ':1' . $r, 0);
|
||||
} else {
|
||||
//Ïåðñîíàæ íå íàéäåí
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ñ÷åò íå íàéäåí']]]];
|
||||
$this->add('-1', 'Ïåðñîíàæ íå íàéäåí:check_login:' . $xml->nick . ':0', 0);
|
||||
//Персонаж не найден
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Счет не найден']]]];
|
||||
$this->add('-1', 'Персонаж не найден:check_login:' . $xml->nick . ':0', 0);
|
||||
}
|
||||
} else {
|
||||
//Îøèáêà ñèãíàòóðû
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Îøèáêà ñèãíàòóðû']]]];
|
||||
$this->add('-1', 'Îøèáêà ñèãíàòóðû:pay:' . $xml->nick . ':0', 0);
|
||||
//Ошибка сигнатуры
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
|
||||
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
|
||||
}
|
||||
} else {
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Íåèçâåñòíûé òèï çàïðîñà']]]];
|
||||
$this->add('-1', 'Íåèçâåñòíûé òèï çàïðîñà:error_method:gamedealer', 0);
|
||||
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Неизвестный тип запроса']]]];
|
||||
$this->add('-1', 'Неизвестный тип запроса:error_method:gamedealer', 0);
|
||||
}
|
||||
|
||||
//Âîçâðàùàåì ðåçóëüòàò
|
||||
//Возвращаем результат
|
||||
$this->backInformation();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user