Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Игровой портал

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: перевод внуктриней валюты.
zloy dyx
Отправлено: 20 Марта, 2015 - 00:40:45
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Авг. 2014  
Откуда: Германия


Помог: 0 раз(а)

[+]


Привет. Есть портал. На нём зарегался и логин с паролям и голдом сразу для всех моих проектов. Логин с паролем на ура Радость начал делать перевод между серваками. Взял я xxtea немножко допилил передача данных идёт, только не стабильно( Например если заполнил форму перевода раз 15 подрят до раз 5 вылезут ошибки и скрипт не сработает.
Curl Говорит
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.     ПЕРЕВОД ВАЛЮТЫ
  4.     ПРОФИЛЬ
  5. HTTP/1.1 200 OK Server: nginx/1.2.1 Date: Thu, 19 Mar 2015 22:34:18 GMT Content-Type: text/html Content-Length: 295 Connection: keep-alive X-Powered-By: PHP/5.4.36-0+deb7u1 Vary: Accept-Encoding
  6.  
  7. Warning: gzinflate(): data error in /home/igrodel/igrodel.tk/public_html/game/stalker/ag/ob.php on line 87
  8.  
  9.  
  10. Notice: Undefined offset: 1 in /home/igrodel/igrodel.tk/public_html/game/stalker/ag/ob.php on line 92
  11.  

Думал что сервак не справляется добавил кучу пауз. (для снижения нагрузки) но всеравно.... Код обработчик (шлёт запрос игре)
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $perevod = '1';
  4. $time = time();
  5. $date= date("y.m.d H:i:s");
  6. $game = $_POST['name'];
  7. $goldkk = $_POST['gold'];
  8. if (!preg_match("/[0-9]/i", $goldkk)) {//проверка ввода сумы
  9.                 $perevod = '0';
  10.                 header("Location: index.php?do=8");
  11.                 exit;
  12. }
  13.  
  14. if($sh['gold'] >= $goldkk){}
  15. else {
  16.         $perevod = '0';
  17.         header("Location: index.php?do=9");
  18.         exit;
  19. }
  20.  
  21. switch ($game) {
  22.         case "stalker":
  23.                 $mest = 'stalker';
  24.                 break;
  25.         default:
  26.                 $mest = 'eror';
  27.                 break;
  28.         }
  29.  
  30. //проверка select      
  31. if ($mest == 'eror'){
  32.                 $perevod = '0';
  33.                 header("Location: index.php?do=6");
  34. }
  35. //основные данные
  36.                 $text = "$sh[id], $goldkk";
  37. //предваритильная кодировка инфы
  38.                 $text = base64_encode(gzdeflate(base64_encode($text), 2));
  39. //шыфр xtea инфа
  40.                 $sekret = mt_rand(1,99999999999999);
  41.                 $text = xxtea_encrypt($text, $sekret);
  42. //фальшыфка для get :D пускай тру хакеры помучаются пару недель :D
  43.                 sleep(1);
  44.                 $sol = mt_rand (1, 9999999);
  45.                 $iid = mt_rand (1, 900);
  46.                 $iid = md5($sol.$iid.sha1($sekret.$iid).md5($sol.$iid));
  47.                 $dan = base64_encode($iid);
  48.                 $dan = md5($sol.$iid.$dan.sha1($sekret.$iid.$dan).md5($sekret.$iid.$dan));
  49. //шифровка ключа который делает розшыфровку :D знаю что не хуя нне кто не понял, но так надёжние :D :D
  50.                 sleep(1);
  51.                 $pi = pi();
  52.                 $delitil = mt_rand (189, 9999999999999999);            
  53.                 $mnogitel = mt_rand (512, 9999999999999999);
  54.                 $dodan = mt_rand (394, 9999999999999999);
  55.                 $mn = mt_rand (28, 999);
  56.                 $mn1 = mt_rand (30, 999);
  57.                 $procent = mt_rand (10, 9999999999999999);
  58.                 $procent= $sekret / $procent;
  59.                 $sekret = $sekret * $mn / $pi;         
  60.                 $pq = $sekret / $delitil;
  61.                 $pw = $pq /$procent;
  62.                 $output = $pw * $mnogitel ;
  63.                 $otv = $output + $dodan * $mn1;
  64.                 sleep(1);
  65.                 //если выбрали сталкер
  66. if ($mest == 'stalker'){
  67.                 $proverka = 'http://igrodel.tk//game/stalker/ag/otk.php';
  68. if (curl_onl("$proverka"))
  69. {
  70. $ch = curl_init('http://igrodel.tk//game/stalker/ag/ob.php?id='.$iid.'danie='.$dan.'');
  71. curl_setopt ($ch, CURLOPT_USERAGENT, "bot1.1(f)" );
  72. curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);
  73. curl_setopt($ch,CURLOPT_HEADER,true);
  74.  
  75. curl_setopt($ch, CURLOPT_REFERER, "http://igrodel.tk/ddgdghdgh/dfhdfgh/gggg.php");
  76. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  77. curl_setopt($ch, CURLOPT_POST, true);
  78. curl_setopt($ch, CURLOPT_POSTFIELDS, "id=$text&otv=$otv&output=$output&mn1=$mn1&dodan=$dodan&procent=$procent&delitil=$delitil&mnogitel=$mnogitel&mn=$mn&pi=$pi");
  79. $result = curl_exec($ch);
  80. echo''.$result.'<br><br><br>';
  81. }
  82. else
  83. {
  84.         $perevod = '0';
  85.                 header("Location: index.php?do=7");
  86.                 exit;
  87. }
  88. }
  89. ?>
  90.  

Код который получает запрос
PHP:
скопировать код в буфер обмена
  1.  
  2. $id =   $_POST['id'];
  3. $otv = $_POST['otv'];
  4. $output = $_POST['output'];
  5. $mn1 = $_POST['mn1'];
  6. $dodan = $_POST['dodan'];
  7. $procent = $_POST['procent'];
  8. $delitil = $_POST['delitil'];
  9. $mnogitel = $_POST['mnogitel'];
  10. $mn = $_POST['mn'];
  11. $pi = $_POST['pi'];
  12. //розшыфровка ключа для xxtea
  13. $otv = $output / $mn1 - $dodan;
  14. $sekret =$output * $procent * $delitil / $mnogitel /$mn * $pi; 
  15. $id = xxtea_decrypt($id, $sekret);
  16. $result = explode(",", $id);
  17. echo'<br><br>';
  18. echo''.$result["0"].'';
  19. echo'<br><br>';
  20. echo''.$result["1"].'';
  21.  

(щас включён вывод асива, так как ловлю баги)
Ну и функции xxtea
PHP:
скопировать код в буфер обмена
  1.  
  2. function long2str($v, $w)
  3. {
  4.     $len = count($v);
  5.     $n   = ($len - 1) << 2;
  6.     if ($w) {
  7.         $m = $v[$len - 1];
  8.         if (($m < $n - 3) || ($m > $n))
  9.             return false;
  10.         $n = $m;
  11.     }
  12.     $s = array();
  13.     for ($i = 0; $i < $len; $i++) {
  14.         $s[$i] = pack("V", $v[$i]);
  15.     }
  16.     if ($w) {
  17.         return substr(join('', $s), 0, $n);
  18.     } else {
  19.         return join('', $s);
  20.     }
  21. }
  22. function str2long($s, $w)
  23. {
  24.     $v = unpack("V*", $s . str_repeat("\0", (4 - strlen($s) % 4) & 3));
  25.     $v = array_values($v);
  26.     if ($w) {
  27.         $v[count($v)] = strlen($s);
  28.     }
  29.     return $v;
  30. }
  31. function int32($n)
  32. {
  33.     while ($n >= 2147483648)
  34.         $n -= 4294967296;
  35.     while ($n <= -2147483649)
  36.         $n += 4294967296;
  37.     return (int) $n;
  38. }
  39. function xxtea_encrypt($str, $key)
  40. {
  41.     if ($str == "") {
  42.         return "";
  43.     }
  44.     $v = str2long($str, true);
  45.     $k = str2long($key, false);
  46.     if (count($k) < 4) {
  47.         for ($i = count($k); $i < 4; $i++) {
  48.             $k[$i] = 0;
  49.         }
  50.     }
  51.     $n = count($v) - 1;
  52.    
  53.     $z     = $v[$n];
  54.     $y     = $v[0];
  55.     $delta = 0x9E3779B9;
  56.     $q     = floor(6 + 52 / ($n + 1));
  57.     $sum   = 0;
  58.     while (0 < $q--) {
  59.         $sum = int32($sum + $delta);
  60.         $e   = $sum >> 2 & 3;
  61.         for ($p = 0; $p < $n; $p++) {
  62.             $y  = $v[$p + 1];
  63.             $mx = int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));
  64.             $z  = $v[$p] = int32($v[$p] + $mx);
  65.         }
  66.         $y  = $v[0];
  67.         $mx = int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));
  68.         $z  = $v[$n] = int32($v[$n] + $mx);
  69.     }
  70.     return long2str($v, false);
  71. }
  72. function xxtea_decrypt($str, $key)
  73. {
  74.     if ($str == "") {
  75.         return "";
  76.     }
  77.     $v = str2long($str, false);
  78.     $k = str2long($key, false);
  79.     if (count($k) < 4) {
  80.         for ($i = count($k); $i < 4; $i++) {
  81.             $k[$i] = 0;
  82.         }
  83.     }
  84.     $n = count($v) - 1;
  85.    
  86.     $z     = $v[$n];
  87.     $y     = $v[0];
  88.     $delta = 0x9E3779B9;
  89.     $q     = floor(6 + 52 / ($n + 1));
  90.     $sum   = int32($q * $delta);
  91.     while ($sum != 0) {
  92.         $e = $sum >> 2 & 3;
  93.         for ($p = $n; $p > 0; $p--) {
  94.             $z  = $v[$p - 1];
  95.             $mx = int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));
  96.             $y  = $v[$p] = int32($v[$p] - $mx);
  97.         }
  98.         $z   = $v[$n];
  99.         $mx  = int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));
  100.         $y   = $v[0] = int32($v[0] - $mx);
  101.         $sum = int32($sum - $delta);
  102.     }
  103.     return long2str($v, true);
  104. }
  105. function curl_onl($domain)
  106. {
  107.                if(!filter_var($domain, FILTER_VALIDATE_URL))
  108.                {
  109.                return false;
  110.                }
  111.                $curlInit = curl_init($domain);
  112.                curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,2);
  113.                curl_setopt($curlInit,CURLOPT_HEADER,true);
  114.                curl_setopt($curlInit,CURLOPT_NOBODY,true);
  115.                curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
  116.                $response = curl_exec($curlInit);
  117.                curl_close($curlInit);
  118.                if ($response) return true;
  119.                return false;
  120. }
  121.  

Из - за чего такое?
Ищё интересует вопрос как можно ждать пока ответит мне удалённый сервак? (Он мне должен прислать в ответе пост данные а я ему второй запрос и только потом зачисление голда) Зарание спс
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB