"PHP" / Говнокод #4327 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
//если нашли аккаунт то проверяем если чары на аккаунте куда мы собираемся перенести персонажа
connectdb("character");
//для выяснения принадлежности аккаунта к той или иной фракции нам достаточно найти одного любого перса
$query = "SELECT race FROM characters WHERE account='".$newacc['id']."' LIMIT 1";
$tmp = @mysql_query($query);
$newchar = @mysql_fetch_array($tmp);
//сравниваем полученный резал перебором и если совпадение найдено ставим переменную в единицу
//если переменная еденица значит аккаунт пренадлежит к фракции орды
if($newchar['race']=='2' OR $newchar['race']=='5' OR $newchar['race']=='6' OR $newchar['race']=='8' OR $newchar['race']=='10') $orc=1;
if($newchar['race']=='1' OR $newchar['race']=='3' OR $newchar['race']=='4' OR $newchar['race']=='7' OR $newchar['race']=='11') $all=1;
//если поле раса пустое то акк тоже пустой и переносить можно
if(empty($newchar['race'])){
$orc=1;
$all=1;
}
}
$query = "SELECT race FROM characters WHERE name='".$charname."' AND account='".$remhash['id']."' ";
$tmp = @mysql_query($query);
$remacc = @mysql_fetch_array($tmp);
//если перса не нашли- нах
if(empty($remacc['race'])) error("You not have character with this name on your account");
else{
if($remacc['race']=='2' OR $remacc['race']=='5' OR $remacc['race']=='6' OR $remacc['race']=='8' OR $remacc['race']=='10') $orc2=1;
if($remacc['race']=='1' OR $remacc['race']=='3' OR $remacc['race']=='4' OR $remacc['race']=='7' OR $remacc['race']=='11') $all2=1;
//проверяем оба аккаунта на предмет принадлежания обоих к одной фракции если нет - нах
if($orc!=$orc2 AND $all!=$all2) error("Accounts have differents faction");
else{
// если все ок меняем номер аккаунта у перса - тадам :D
$query = "UPDATE characters SET account='".$newacc['id']."' WHERE name='".$charname."'";
$tmp = @mysql_query($query);
if(!$tmp) error("какая то жопа в последнем запросе");
else{header("location: /index.php?do=worldofwarcraft_accountmanager&mode=transfer&change=ok");}
}
}
mysql_close();
}

Синтаксис и орфография сохранены.

Запостил: mulder mulder, (Updated )

Комментарии (13) RSS

  • Ну школьник писал для себя. засаобачил пол кода, никакого логирования ошибок. Ну так этим много кто грешит, а чтоб прям говоно код то нет.
    Ответить
    • Мне кажется, что изначально неверно одно свойство "Фракция" обозначать одновременно двумя разными переменными.
      Ответить
    • То есть магические числа, sql injection и неконструктивные ветвления и оператор "OR" - норм?)
      Ответить
      • OR чем хуже || ??
        sql injection - где ??? никаких $_GET(POST) в запросах нет. может выше всё фильтруется
        Не конструктивные ветвления может быть. Но школота на то и школота.
        Ответить
        • Ммм, я искренно уверен, что не фильтруется, но ладно.
          OR - идиоматически неверно.
          Ответить
          • Употребление умного слова, однако, не доказывает, что вы правы.
            Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8