За последние 24 часа нас посетили 59307 программистов и 1751 робот. Сейчас ищут 803 программиста ...

Ответ от mysql

Тема в разделе "PHP для новичков", создана пользователем Golovorot, 16 мар 2015.

  1. Golovorot

    Golovorot Активный пользователь

    С нами с:
    24 окт 2012
    Сообщения:
    53
    Симпатии:
    0
    Делаю запрос к серверу, а он мне ответ отправляет с пробелами
    Код (Text):
    1. request = re q=tr u e
    Но если копировать строчки ответа и вставлять в другое место, то получается все как надо.
    Что за фигня?
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Код, который генерирует ответ, в студию.
     
  3. Golovorot

    Golovorot Активный пользователь

    С нами с:
    24 окт 2012
    Сообщения:
    53
    Симпатии:
    0
    Код (Text):
    1. <?
    2.    
    3.     include ("updUser.php");
    4.     include ("balance.php");
    5.    
    6.     define  ("SIZE_OF_SMALLINT", 65535);
    7.    
    8.    
    9.     $id=intval($_POST['id']);
    10.     if ($id==0){
    11.         $id = intval($_POST['viewer_id']);
    12.         $s = "(SELECT id FROM users WHERE viewer_id = $id)";
    13.     }else $s = "$id";
    14.    
    15.     $auth_key=$_POST['hash'];
    16.     if ($auth_key != h($id)) exit("req=false&error=auth_error");
    17.    
    18.     updUser($s);
    19.    
    20.     $str = "
    21. SELECT
    22. names.id, names.name, names.all_sh,
    23. buildings.palace, buildings.farm, buildings.tower, buildings.secret,
    24. last_battle.time AS battle_time,
    25. resources.gold, resources.dgold, resources.millet, resources.dmillet, resources.diamond, resources.ruby,
    26. (SELECT course FROM course ORDER BY id DESC LIMIT 1 ) AS ruby_course,
    27. units.sh_num, units.sh_atk, units.sh_hp, units.sh_acc, units.bw_num, units.bw_atk, units.bw_hp, units.bw_acc, units.sp_num, units.sp_atk, units.sp_hp, units.sp_acc, units.auras,
    28. relax_time.time AS relax_time,
    29. in_battle.battle_id,
    30. tasks.task,
    31. hero.atk as hero_atk, hero.hp as hero_hp, hero.hero_atk as hero_hero_atk, hero.gold as hero_gold, hero.exp as hero_exp, hero.level as hero_level, hero.full_exp as hero_full_exp
    32. FROM names
    33. JOIN buildings
    34. JOIN last_battle
    35. JOIN resources
    36. JOIN units
    37. JOIN relax_time
    38. JOIN in_battle
    39. JOIN tasks
    40. JOIN hero
    41. WHERE names.id = buildings.id
    42. AND names.id = last_battle.id
    43. AND names.id = resources.id
    44. AND names.id = units.id
    45. AND names.id = relax_time.id
    46. AND names.id = in_battle.id
    47. AND names.id = tasks.id
    48. AND names.id = hero.id
    49. AND names.id = $s
    50. ";
    51.     $req = mysql_query($str, $db);
    52.     if (!$req) exit("req=false&error=mysql_error&p=0&s=3");
    53.     if (mysql_num_rows($req) == 0) exit("req=false&error=no_village&s=4");
    54.     $arr = mysql_fetch_array($req);
    55.     $id = $arr["id"];
    56.     if ($arr["battle_id"] != 0) {
    57.         //Надо добавить информацию о противнике
    58.     }
    59.     $arr["relax_time"]  = $arr["relax_time"] - time();
    60.     if ($arr["relax_time"] < 0) $arr["relax_time"] = 0;
    61.     $arr["hash"]        = md5("_".$arr["palace"]); 
    62.     $arr["time_now"]    = time();      
    63.    
    64.     $arr["_sh_atk"] = DEFAULT_SH_ATK;
    65.     $arr["_sh_hp"]  = DEFAULT_SH_HP;
    66.     $arr["_sh_acc"] = DEFAULT_SH_ACC;
    67.     $arr["_bw_atk"] = DEFAULT_BW_ATK;
    68.     $arr["_bw_hp"]  = DEFAULT_BW_HP;
    69.     $arr["_bw_acc"] = DEFAULT_BW_ACC;
    70.     $arr["_sp_atk"] = DEFAULT_SP_ATK;
    71.     $arr["_sp_hp"]  = DEFAULT_SP_HP;
    72.     $arr["_sp_acc"] = DEFAULT_SP_ACC;
    73.    
    74.     $arr["_tower_atk"] = DEFAULT_TOWER_ATK;
    75.     $arr["_hero_atk"] = DEFAULT_HERO_ATK;
    76.    
    77.     $controllSummPre = "_".$arr["_sh_atk"].$arr["_sh_hp"].$arr["_sh_acc"].$arr["_bw_atk"].$arr["_bw_hp"].$arr["_bw_acc"].$arr["_sp_atk"].$arr["_sp_hp"].$arr["_sp_acc"].$arr["_tower_atk"].$arr["_hero_atk"];
    78.     $arr["hash2"] = md5($controllSummPre);
    79.     $arr["auth_key"] = h($arr["id"]);  
    80.     $arr["ruby_cost"] = RUBY_COST;
    81.    
    82.     $s = "";
    83.     foreach ($arr as $key => $value){
    84.         $s .= "&$key=$value";
    85.     }
    86.     $str = "UPDATE last_online SET time=".time()." WHERE id=".$arr["id"];
    87.     $req = mysql_query($str, $db);
    88.     if (!$req) exit("req=false&error=mysql_error&p=1");
    89.     $str = "SELECT users.viewer_id AS attacker,names.name,names.all_sh,battles.status,battles.good_before,battles.bad_before,battles.good_after,battles.bad_after,battles.dgold
    90.     FROM battles
    91.     JOIN last_battles
    92.     JOIN users
    93.     JOIN names
    94.     WHERE
    95. (battles.id = last_battles.b1
    96. OR battles.id = last_battles.b2
    97. OR battles.id = last_battles.b3
    98. OR battles.id = last_battles.b4
    99. OR battles.id = last_battles.b5
    100. OR battles.id = last_battles.b6
    101. OR battles.id = last_battles.b7
    102. OR battles.id = last_battles.b8
    103. OR battles.id = last_battles.b9
    104. OR battles.id = last_battles.b10
    105. OR battles.id = last_battles.b11
    106. OR battles.id = last_battles.b12
    107. OR battles.id = last_battles.b13
    108. OR battles.id = last_battles.b14
    109. OR battles.id = last_battles.b15
    110. OR battles.id = last_battles.b16
    111. OR battles.id = last_battles.b17
    112. OR battles.id = last_battles.b18
    113. OR battles.id = last_battles.b19
    114. OR battles.id = last_battles.b20
    115. )
    116. AND battles.attacker = names.id
    117. AND battles.attacker = users.id
    118. AND last_battles.id = $id
    119.  
    120. ";
    121.     $req = mysql_query($str, $db);
    122.     if (!$req) exit ("req=false&error=mysql_error&s=1");
    123.     $xml = "<xml>";
    124.     while ($row = mysql_fetch_assoc($req)) {
    125.         $xml .= "\n\t<battle>";
    126.         $xml .= "\n\t\t<status>".$row["status"]."</status>";
    127.         $xml .= "\n\t\t<your>";
    128.         $xml .= "\n\t\t\t<units>".($row["bad_before"] - $row["bad_after"])."</units>";
    129.         $xml .= "\n\t\t\t<gold>".$row["dgold"]."</gold>";
    130.         $xml .= "\n\t\t</your>";
    131.         $xml .= "\n\t\t<target>";
    132.         $xml .= "\n\t\t\t<id>".$row["attacker"]."</id>";
    133.         $xml .= "\n\t\t\t<name>".$row["name"]."</name>";
    134.         $xml .= "\n\t\t\t<all>".$row["all_sh"]."</all>";
    135.         $xml .= "\n\t\t\t<units>".($row["good_before"]-$row["good_after"])."</units>";
    136.         $xml .= "\n\t\t\t<gold>0</gold>";
    137.         $xml .= "\n\t\t\t<diamond>0</diamond>";
    138.         $xml .= "\n\t\t</target>";     
    139.         $xml .= "\n\t</battle>";
    140.     }
    141.     $xml .= "\n</xml>";
    142.     if ($xml != "<xml>\n</xml>"){
    143.         $str = "
    144.         UPDATE last_battles
    145.         SET b1 = 0, b2 = 0, b3 = 0, b4 = 0, b5 = 0, b6 = 0, b7 = 0, b8 = 0, b9 = 0, b10 = 0, b11 = 0, b12 = 0, b13 = 0, b14 = 0, b15 = 0, b16 = 0, b17 = 0, b18 = 0, b19 = 0, b20 = 0
    146.         WHERE id = $id
    147.         ";
    148.         $req = mysql_query($str, $db); 
    149.         if (!$req) exit ("req=false&error=mysql_error&s=2");
    150.     }
    151.     echo "req=true".$s."&xml=$xml";
    152. ?>
    код отправляется на сервер, а потом в swf файл
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Хм...а что показывает какой-нить хромовый анализатор запросов или фаербаг? В каком виде там сообщения? Тоже с пробелами? Уверены, что пробелы сервер отдает(потому что причин на это не вижу)? Может они позже появляются?
     
  5. Golovorot

    Golovorot Активный пользователь

    С нами с:
    24 окт 2012
    Сообщения:
    53
    Симпатии:
    0
    сообщения в текстовом виде.
    Это может быть какая-нибудь защита?
    Просто изначально этот файл лежал на другом сервере
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Может, но ее отдает не сервер. Либо просто удалите строку:
    Код (Text):
    1. echo "req=true".$s."&xml=$xml";
    И напечатайте ее заново. Предыдущий разработчик мог прикола ради туда вкинуть невидимых пробелов.
     
  8. Golovorot

    Golovorot Активный пользователь

    С нами с:
    24 окт 2012
    Сообщения:
    53
    Симпатии:
    0
    Не помогло
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Попробуй обратиться напрямую и посмотреть, что возвращает сервер. Если все чисто, то данные бьются дальше по цепочке.