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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function FileUpload(...) {
      // ...
      return array($name,$link);
      header("HTTP/1.1 204 No Content");
    }
    
    echo FileUpload(...);

    Что хотел этим сказать автор, для меня остаётся полнейшей загадкой.
    Особенно хедерером 204.

    DropWorld, 15 Февраля 2012

    Комментарии (5)
  2. Pascal / Говнокод #9430

    +88

    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
    var A:array of record
      Foo: integer;
    end;
    
    function NewNode: integer;
    begin
      SetLength(A, Length(A)+1);
      Result := High(A);
      // возвращаем не указатель на последний элемент,
      // а номер последнего элемента, потому что массив динамический и указатели нестабильны
    end;
    
    procedure DoSmth(var i: integer);
    var
      n1,n2: integer;
    begin
      n1 := NewNode;
      n2 := NewNode;
      // дальше что-то проделывааем над A[n1] и A[n2]
      i := A[n1].Foo + A[n2].Foo;
    end;
    
    var
      NewIndex: integer;
    begin
      NewIndex := NewNode;
      DoSmth(A[NewIndex].Foo);
    end.

    Угадайте, почему это не будет работать и приведёт к порче памяти.

    TarasB, 15 Февраля 2012

    Комментарии (20)
  3. PHP / Говнокод #9429

    +159

    1. 1
    2. 2
    3. 3
    exit;
    break;
    return false;

    Вот так истинные индусы завершают выполнение скрипта. Чтоб уж наверняка.
    Только die(); не хватает.

    ruslan441, 15 Февраля 2012

    Комментарии (16)
  4. PHP / Говнокод #9428

    +148

    1. 1
    2. 2
    3. 3
    4. 4
    /**
    	 * Assign
    	 **/
        function Assign ($mTplArray, $mTrailer = "")

    Зачем этот комментарий, над каждым методов вообще?!
    Будто я не вижу как называется метод класса.

    Zerstoren, 15 Февраля 2012

    Комментарии (4)
  5. Куча / Говнокод #9427

    +131

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // shipping cost = shipping cost + (3% of order sum)
    			// but only if order sum <2500!
    			// Вообще я тебе не завидую, чего уж тут :/
    			// иди напейся
    			// улетай на Кубу
    			// выпей 7 коктейлей куба либре 
    			// и стреляй в фиделя кастро

    Комментарии к коду в Webasyst ShopScript. Я понял их смысл через пару дней

    brain, 15 Февраля 2012

    Комментарии (0)
  6. PHP / Говнокод #9426

    +152

    1. 1
    Пособие по тому, как не надо писать системы: http://file.qip.ru/file/fsBgpGob/index.html

    P.S.: за это заплатили товарищам 200 т.р.

    1_and_0, 15 Февраля 2012

    Комментарии (9)
  7. PHP / Говнокод #9425

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // Блок кэширования
    
    // Директива CASH_STATUS определяет количество секунд хранения кэша
    
    // 0 - кэширование отключено,
    
    $_CONFIG["CASH_STATUS"]=0;

    Из конфигурационного файла самописной CMS системы

    alex1, 15 Февраля 2012

    Комментарии (3)
  8. PHP / Говнокод #9424

    +151

    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
    <?
    if (!file_exists("count.txt")) {
        $fp = fopen("count.txt","w");
        fwrite($fp,0);
        fclose($fp);
    }
    $fp = fopen("count.txt","r");
    $count = fread($fp,10);
    fclose($fp);
    $visitor = $_COOKIE['visitor'];
    if (!isset($visitor)) {
    setcookie("visitor", "yes");
    $count++;
    $fp = fopen("count.txt","w");
    fwrite($fp,$count);
    fclose($fp);
    }
    $string = strlen($count);
    for ($search=0;$search<$string;$search++) {
        $digit = substr($count,$search,1);
        $count_graphic .= "<img src=\"img/$digit.gif\">";
    }
    ?>

    Tony_, 15 Февраля 2012

    Комментарии (3)
  9. C++ / Говнокод #9423

    +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
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    void CXMLParser::Parse(std::map< std::pair<int, int>, int >& link)
    {
      _di_IXMLNode areaNode = MessageNode->ChildNodes->FindNode( WideString("area") );
      if( areaNode )
      {
        Area.reset( new CAreaPart( areaNode ) );
        IXMLNodeList* pointList = areaNode->ChildNodes;
        if( pointList )
        {
          for(int pointIndex=0; pointIndex<pointList->GetCount(); pointIndex++)
          {
            _di_IXMLNode pointNode = pointList->Get( pointIndex );
            int typePoint = -1;
            if( pointNode->GetNodeName() == WideString("measuringpoint") )
              typePoint = MEASURING;
            if( pointNode->GetNodeName() == WideString("accountpoint") )
              typePoint = ACCOUNT;
            if( pointNode->GetNodeName() == WideString("deliverypoint") )
              typePoint = DELIVERY;
            switch( typePoint )
            {
            case MEASURING:
            case ACCOUNT:
            case DELIVERY:
              {
                const int pointCode    = pointNode->GetAttribute( WideString("code") );
                const String pointName = pointNode->GetAttribute( WideString("name") );
                IXMLNodeList* channelList = pointNode->ChildNodes;
                if( channelList )
                {
                  for(int channelIndex=0; channelIndex<channelList->GetCount(); channelIndex++)
                  {
                    _di_IXMLNode channelNode = channelList->Get( channelIndex );
                    if( channelNode->GetNodeName() == WideString("measuringchannel") )
                    {
                      const int channelCode    = channelNode->GetAttribute( WideString("code") );
                      const String channelDesc = channelNode->GetAttribute( WideString("desc") );
                      IXMLNodeList* periodList = channelNode->ChildNodes;
                      if( periodList )
                      {
                        for(int periodIndex=0; periodIndex<periodList->GetCount(); periodIndex++)
                        {
                          _di_IXMLNode periodNode = periodList->Get( periodIndex );
                          if( periodNode )
                          {
                            String str = periodNode->GetAttribute( WideString("start") );
                            periodNode->GetAttribute( WideString("end") );
                            TDateTime time;
                            time = TDateTime( StrToInt( str.SubString( 1, 2 ) ), StrToInt( str.SubString( 3, 2 ) ), 0, 0 );
                            periodNode->GetAttribute( WideString("summer") );
                            time = IncMinute( time, 30 );
                            _di_IXMLNode valueNode = periodNode->ChildNodes->FindNode( WideString("value") );
                            if( valueNode )
                            {
                              const int status = valueNode->GetAttribute( WideString("status") );
                              const int value = StrToInt( valueNode->Text );
                              if( RTDBWrite )
                              {
                                map< pair<int, int>, int >::iterator i = link.find( make_pair( pointCode, channelCode ) );
                                if( i!=link.end() )
                                {
                                  (*RTDBWrite)( Date->DateInterval.first + time, (*i).second, value, status );
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      RTDBWrite->Flush();
    }

    Древний legacy-код на БорландЦэпэпэБыдлере, обнаруживаемый на текущей работе (почти госпредприятие), выглядит в основной своей массе примерно так. Новый код на C# чуть получше, но в целом тоже жуткое мракобесие.
    Сил больше нет работать с подобным, увольняюсь и ищу норм работу.

    invi, 15 Февраля 2012

    Комментарии (9)
  10. PHP / Говнокод #9422

    +162

    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
    $orders = $DB->Query("INSERT INTO `zcrm_orders` SET 
        `ORDER_NUMBER` = '09/".str_pad($arEventFields['ORDER_ID'], 6, '0', STR_PAD_LEFT)."', 
        `DATETIME` = '".$dateOrder."', 
        `FIO` = '".$arEventFields['ORDER_PROP_7']."', 
        `NAME_ORGANIZATION` = '".$arEventFields['ORDER_PROP_1']."', 
        `TELEFON` = '".$arEventFields['ORDER_PROP_4']."', 
        `TELEFON_MOD` = '".preg_replace('/[^\d]+/','', $arEventFields['ORDER_PROP_4'])."',
        `EMAIL` = '".$arEventFields['ORDER_PROP_6']."', 
        `OPLATA` = '8', 
        `DOSTAVKA` = '".$_POST["id_dostavka"]."', 
        `CITY` ='".$arEventFields['NASPUNKT_DOSTAVKA']."',
        `PUNKT_DOSTAVKA` = '".$arEventFields['ADRESS_DOSTAVKA']." ".$arEventFields['SKLAD_DOSTAVKA']."',
        `DATE_DOSTAVKA` = '".$arEventFields['DATE_DOSTAVKA']."', 
        `TIME_DOSTAVKA` = '".$arEventFields['TIME_DOSTAVKA']."', 
        `PRICE_DOSTAVKA` = '".$arEventFields['PRICE_DELIVERY2']."', 
        `COMMENTS` = '".$arOrder['USER_DESCRIPTION']."' ");

    Внимательно смотрим на 10 строчку.

    ast, 15 Февраля 2012

    Комментарии (2)