1. PHP / Говнокод #4327

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 10 Октября 2010

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

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

      =)))
      Ответить

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