1. Лучший говнокод

    В номинации:
    За время:
  2. JavaScript / Говнокод #15805

    +148

    1. 1
    2. 2
    3. 3
    var attr_class = document.createAttribute("class");
    attr_class.nodeValue="th_tr";
    th.setAttributeNode(attr_class);

    И нет, attr_class больше нигде не используется. Кто-то из наших сотрудников экспериментировал, похоже.

    torbasow, 21 Апреля 2014

    Комментарии (1)
  3. Куча / Говнокод #15802

    +140

    1. 1
    2. 2
    3. 3
    @echo brutushafens, если ты есть вконтакте, добавь меня в друзья, поговорим. vk.com/cageo
    @echo если тебя нет вконтакте, напиши мне на [email protected].
    @pause

    Послание для brutushafens :)

    Mobac, 20 Апреля 2014

    Комментарии (1)
  4. Assembler / Говнокод #15790

    +143

    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
    entry start 
    
    include 'C:\Program Files\Casm\win32a.inc' ; Include file win32a.inc 
    
    section '.text' code readable executable 
    
      start: 
    
            invoke  GetModuleHandle,0 
            invoke  DialogBoxParam,eax,37,HWND_DESKTOP,DialogProc,0 
            or      eax,eax 
            jz      exit 
      exit: 
            invoke  ExitProcess,0 
    
    proc DialogProc hwnddlg,msg,wparam,lparam 
            push    ebx esi edi 
            cmp     [msg],WM_INITDIALOG 
            je      .wminitdialog 
            cmp     [msg],WM_CLOSE 
            je      .wmclose 
            xor     eax,eax 
            jmp     .finish 
      .wminitdialog: 
            jmp     .processed 
      .wmclose: 
            invoke  EndDialog,[hwnddlg],0 
      .processed: 
            mov     eax,1 
      .finish: 
            pop     edi esi ebx 
            ret 
    endp 
    
    section '.bss' readable writeable 
    
      flags dd ? 
      caption rb 40h 
      message rb 100h 
    
    section '.idata' import data readable writeable 
    
      library kernel,'KERNEL32.DLL',\ 
              user,'USER32.DLL' 
    
      import kernel,\ 
             GetModuleHandle,'GetModuleHandleA',\ 
             ExitProcess,'ExitProcess' 
    
      import user,\ 
             DialogBoxParam,'DialogBoxParamA',\ 
             EndDialog,'EndDialog' 
    
    section '.rsrc' resource data readable 
    
      directory RT_DIALOG,dialogs 
    
      resource dialogs,\ 
               37,LANG_ENGLISH+SUBLANG_DEFAULT,demonstration 
    
      dialog demonstration,'TestProgram',170,170,105,75,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME 
      dialogitem 'STATIC','Compile',-1,10,10,70,29,WS_VISIBLE 
      dialogitem 'STATIC','WITH...',-1,10,20,70,8,WS_VISIBLE 
      dialogitem 'STATIC','C',-1,10,30,70,8,WS_VISIBLE 
      dialogitem 'STATIC','A',-1,10,40,70,8,WS_VISIBLE 
      dialogitem 'STATIC','S',-1,10,50,70,8,WS_VISIBLE 
      dialogitem 'STATIC','M',-1,10,60,70,8,WS_VISIBLE 
      enddialog

    Окно на Fasm M.P.E.

    Mobac, 19 Апреля 2014

    Комментарии (1)
  5. PHP / Говнокод #15765

    +131

    1. 1
    Сосево из ширинки, ебля с порога.

    KonardStuard, 16 Апреля 2014

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

    +152

    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
    79. 79
    80. 80
    81. 81
    $db = Db::getInstance();
    $result = $db->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'payment_module_settings`;');
    $text = "";
    for($i=2;$i<sizeof($result[0]);$i++)
    {
        if($i == 2)
        {
            $text .= "[general]"."\n";
            $text .= "url = '".$result[0][url]."'"."\n";
        }
        if($i == 3)
        {
            $text .= "[payment]"."\n";
            $text .= "sequritySender = '".$result[0][security_sender]."'"."\n";
        }
        if($i == 4)
        {
            $text .= "transactionChannel = '".$result[0][transaction_Channel]."'"."\n";
        }
        if($i == 5)
        {
            $text .= "transactionMode = '".$result[0][transaction_Mode]."'"."\n";
        }
        if($i == 6)
        {
            $text .= "userLogin = '".$result[0][user_Login]."'"."\n";
        }
        if($i == 7)
        {
            $text .= "userPwd = '".$result[0][user_Pwd]."'"."\n";
        }
        if($i == 8)
        {
            $text .= "paymentType = '".$result[0][payment_Type]."'"."\n";
        }
        if($i == 9)
        {
            $text .= "presentationCurrency = '".$result[0][presentation_Currency]."'"."\n";
        }
        if($i == 10)
        {
            $text .= "[view]"."\n";
            $text .= "src = '".$result[0][src]."'"."\n";
        }
        if($i == 11)
        {
            $text .= "language = '".$result[0][language]."'"."\n";
        }
        if($i == 12)
        {
            $text .= "style = '".$result[0][style]."'"."\n";
        }
       
    }
    
    if($_GET['paymentType'] == 'CC')
    {
      $text .= "brands[] = 'VISA'"."\n";
      $text .= "brands[] = 'MASTER'"."\n";
     
    }
    if($_GET['paymentType'] == 'VA')
    {
      $text .= "brands[] = 'PAYPAL'"."\n";
    }
    
    $text .= "[soap]"."\n";
    $text .= "url = 'http://debugservices.fine-trade.org/PayOnOrderHandling.svc?WSDL'"."\n";
    $text .= "username  = 'extensions'"."\n";
    $text .= "password = 'testExtensions'"."\n";
    $text .= "options[] = false"."\n";
    $text .= "importIfPending = false"."\n";
    
    if (file_exists('LoviitLib/config.ini')) {
        unlink('LoviitLib/config.ini');
    } 
    $myFile = "LoviitLib/testFile.txt";
    $fh = fopen($myFile, 'w') or die("can't open file");
    fwrite($fh, $text);
    fclose($fh);
    rename("LoviitLib/testFile.txt","LoviitLib/config.ini");

    Преамбула: для конфигурации библиотеки передаётся ассоциативный массив в конструктор. Если передаётся null, то для конфигурации используется файл config.ini с дефолтными настройками, который находится в корне библиотеки.
    Этот код исполняется при каждой инициализации библиотеки (при каждом чекауте).
    Ремарка: после запроса к db результатом является ассоциативный массив.
    И да, это код из модуля для prestashop cms.

    aronsky, 15 Апреля 2014

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

    +133

    1. 1
    Добрый вечер, цыплята.

    Сосево из ширинки, ебля с порога.

    KonardStuard, 14 Апреля 2014

    Комментарии (1)
  8. Java / Говнокод #15751

    +73

    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
    StartElement startElement = event.asStartElement();
    if(startElement.getName().getLocalPart().equals(REPORT)){
    	report = new Report();
    }else if (startElement.getName().getLocalPart().equals(CODE)){
    	event = eventReader.nextEvent();
    	report.setCode(event.asCharacters().getData());
    	continue;
    }else if(startElement.getName().getLocalPart().equals(SHORT_NAME)){
    	event = eventReader.nextEvent();
    	report.setShortName(event.asCharacters().getData());
    }else if(startElement.getName().getLocalPart().equals(NAME)){
    	event = eventReader.nextEvent();
    	report.setName(event.asCharacters().getData());
    	continue;
    }else if(startElement.getName().getLocalPart().equals(TYPE)){
    	event = eventReader.nextEvent();
    	report.setType(ReportType.valueOf(event.asCharacters().getData()));
    	continue;
    }else if(startElement.getName().getLocalPart().equals(CON_CMN_REPORT)){
    	event = eventReader.nextEvent();
    	String conRepCode = event.asCharacters().getData();
    	report.setConnectedCommonReport(getReportByCode(conRepCode, reports));
    	continue;
    }else if(startElement.getName().getLocalPart().equals(BEFORE)){
    	event = eventReader.nextEvent();
    	report.setAvaliableBefore(Boolean.valueOf(event.asCharacters().getData()));
    	continue;
    }else if(startElement.getName().getLocalPart().equals(QUANTITY)){
    	event = eventReader.nextEvent();
    	report.setQuantity(ReportQuantity.valueOf(event.asCharacters().getData()));
    	continue;
    }else if(startElement.getName().getLocalPart().equals(CREATOR_CLASS_NAME)){
    	event = eventReader.nextEvent();
    	report.setCreatorClassName(event.asCharacters().getData());
    }

    и не лень же было

    evg_ever, 14 Апреля 2014

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

    +12

    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
    int main()
    {
    MyList<MySubList*> *list;
    ...
    int error=makeZeroItemsNull(list)+deleteZeroItems(list);
    delete list;
    return error;
    }
    
    int makeZeroItemsNull(MyList *list)
    {
    //Удаляем указатели в списке и обнуляем
    if(list==0||error)return 1;
    return deleteZeroItems(list); //На всякий случай проверяем остались ли не удаленные элементы
    }
    
    int deleteZeroItems(MyList *list)
    {
    //Удаляем из списка обнуленные элементы
    if(list==0||error)return 2;
    return makeZeroItemsNull(list); //На всякий случай проверяем остались ли не обнуленные элементы
    }

    Учим все функции возвращать int(0) когда нет ошибок.

    IGHOR, 14 Апреля 2014

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

    +142

    1. 1
    Лошади уже здесь.

    Konardillo, 06 Апреля 2014

    Комментарии (1)
  11. SQL / Говнокод #15646

    −123

    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
    79. 79
    select ...
    case 
     -- периоды пересекаются только в одной точке (2)
    when (vw.hEndDate=vw.rStartDate) 
    then vw.hEndDate
    when (vw.rEndDate=vw.hStartDate) 
    then vw.rEndDate
    -- периоды пересекаются в определенной области (2)
    when (vw.hStartDate > vw.rstartdate and IsNull(vw.hEndDate,'01-01-2099')<IsNull(vw.rEndDate,'01-01-2099')) then vw.hStartDate
    when ((vw.rStartDate between vw.hStartDate and vw.hEndDate) and (vw.hEndDate between vw.rStartDate and vw.rEndDate)) 
    then vw.rStartDate
    when ((vw.hStartDate between vw.rStartDate and vw.rEndDate) and (vw.rEndDate between vw.hStartDate and vw.hEndDate)) 
    then vw.hStartDate
    -- периоды полностью совпадают (1)
    when (vw.hStartDate=vw.rStartDate and vw.hEndDate=vw.rEndDate) 
    then vw.hStartDate
    -- периоды совпадают в одной точке и перекрываются (4)
    when (vw.hStartDate=vw.rStartDate and vw.rEndDate<vw.hEndDate) 
    then vw.hStartDate
    when (vw.hStartDate=vw.rStartDate and vw.hEndDate<vw.rEndDate) 
    then vw.hStartDate
    when (vw.hEndDate=vw.rEndDate and vw.rStartDate>vw.hStartDate) 
    then vw.rStartDate
    when (vw.hEndDate=vw.rEndDate and vw.rStartDate<vw.hStartDate) 
    then vw.hStartDate
    end as MainStartDate  
    ,case 
    -- периоды пересекаются только в одной точке (2)
    when (vw.hEndDate=vw.rStartDate) 
    then vw.hEndDate
    when (vw.rEndDate=vw.hStartDate) 
    then vw.rEndDate
    -- периоды пересекаются в определенной области (2)
    when (vw.hStartDate > vw.rstartdate and IsNull(vw.hEndDate,'01-01-2099')<IsNull(vw.rEndDate,'01-01-2099')) then vw.hEndDate
    when ((vw.rStartDate between vw.hStartDate and vw.hEndDate) and (vw.hEndDate between vw.rStartDate and vw.rEndDate)) 
    then vw.hEndDate
    when ((vw.hStartDate between vw.rStartDate and vw.rEndDate) and (vw.rEndDate between vw.hStartDate and vw.hEndDate)) 
    then vw.rEndDate
    -- периоды полностью совпадают (1)
    when (vw.hStartDate=vw.rStartDate and vw.hEndDate=vw.rEndDate) 
    then vw.hEndDate
    -- периоды совпадают в одной точке и перекрываются (4)
    when (vw.hStartDate=vw.rStartDate and vw.rEndDate<vw.hEndDate) 
    then vw.rEndDate
    when (vw.hStartDate=vw.rStartDate and vw.hEndDate<vw.rEndDate) 
    then vw.hEndDate
    when (vw.hEndDate=vw.rEndDate and vw.rStartDate>vw.hStartDate) 
    then vw.hEndDate
    when (vw.hEndDate=vw.rEndDate and vw.rStartDate<vw.hStartDate) 
    then vw.hEndDate
    end as MainEndDate
    from (select ...
    case when (IsNull(h.[EndDate],'01-01-2099')=r.[StartDate]) then '1 периоды пересекаются только в одной точке (2) h.[EndDate]=r.[StartDate]'
    when(IsNull(r.[EndDate],'01-01-2099')=h.[StartDate]) then '2 периоды пересекаются только в одной точке (2) r.[EndDate]=h.[StartDate]'
    -- периоды пересекаются в определенной области (2)
    when (h.startdate > r.startdate and IsNull(h.[EndDate],'01-01-2099')<IsNull(r.[EndDate],'01-01-2099')) then 'Период иерархии полностью входит в период территории'
    when((r.StartDate between h.StartDate and IsNull(h.[EndDate],'01-01-2099')) and (IsNull(h.[EndDate],'01-01-2099') between r.StartDate and IsNull(r.[EndDate],'01-01-2099'))) then 'периоды пересекаются в определенной области (2) 3 ((r.StartDate between h.StartDate and IsNull(h.[EndDate],01-01-2099)) and (IsNull(h.[EndDate],01-01-2099) between r.StartDate and r.EndDate))'
    when((h.startdate between r.startdate and IsNull(r.[EndDate],'01-01-2099')) and (IsNull(r.[EndDate],'01-01-2099') between h.Startdate and IsNull(h.[EndDate],'01-01-2099'))) then 'периоды пересекаются в определенной области (2) 4 ((h.startdate between r.startdate and r.enddate) and (r.EndDate between h.Startdate and IsNull(h.[EndDate],01-01-2099)))'
    -- периоды полностью совпадают (1)
    when(h.startdate=r.startdate and IsNull(h.[EndDate],'01-01-2099')=IsNull(r.[EndDate],'01-01-2099')) then 'периоды полностью совпадают (1) 5 (h.startdate=r.startdate and IsNull(h.[EndDate],01-01-2099)=r.enddate)'
    -- периоды совпадают в одной точке и перекрываются (4)
    when(h.startdate=r.startdate and IsNull(r.[EndDate],'01-01-2099')<IsNull(h.[EndDate],'01-01-2099')) then 'периоды совпадают в одной точке и перекрываются (4) 6 (h.startdate=r.startdate and r.enddate<IsNull(h.[EndDate],01-01-2099))'
    when(h.startdate=r.startdate and IsNull(h.[EndDate],'01-01-2099')<IsNull(r.[EndDate],'01-01-2099')) then 'периоды совпадают в одной точке и перекрываются (4) 7 (h.startdate=r.startdate and IsNull(h.[EndDate],01-01-2099)<r.enddate)'
    when(IsNull(h.[EndDate],'01-01-2099')=IsNull(r.[EndDate],'01-01-2099') and r.startdate>h.startdate) then 'периоды совпадают в одной точке и перекрываются (4) 8 (IsNull(h.[EndDate],01-01-2099)=r.enddate and r.startdate>h.startdate)'
    when(IsNull(h.[EndDate],'01-01-2099')=IsNull(r.[EndDate],'01-01-2099') and r.startdate<h.startdate) then 'периоды совпадают в одной точке и перекрываются (4) 9 (IsNull(h.[EndDate],01-01-2099)=r.enddate and r.startdate<h.startdate)'
    ... where ...
    (IsNull(h.[EndDate],'01-01-2099')=r.[StartDate]) 
    or (IsNull(r.[EndDate],'01-01-2099')=h.[StartDate])
    -- периоды пересекаются в определенной области (2)
    or ((r.StartDate between h.StartDate and IsNull(h.[EndDate],'01-01-2099')) and (IsNull(h.[EndDate],'01-01-2099') between r.StartDate and IsNull(r.[EndDate],'01-01-2099')))
    or ((h.startdate between r.startdate and IsNull(r.[EndDate],'01-01-2099')) and (IsNull(r.[EndDate],'01-01-2099') between h.Startdate and IsNull(h.[EndDate],'01-01-2099')))
    or (h.startdate > r.startdate and IsNull(h.[EndDate],'01-01-2099')<IsNull(r.[EndDate],'01-01-2099'))
    -- периоды полностью совпадают (1)
    or (h.startdate=r.startdate and IsNull(h.[EndDate],'01-01-2099')=IsNull(r.[EndDate],'01-01-2099'))
    -- периоды совпадают в одной точке и перекрываются (4)
    or (h.startdate=r.startdate and IsNull(r.[EndDate],'01-01-2099')<IsNull(h.[EndDate],'01-01-2099'))
    or (h.startdate=r.startdate and IsNull(h.[EndDate],'01-01-2099')<IsNull(r.[EndDate],'01-01-2099'))
    or (IsNull(h.[EndDate],'01-01-2099')=IsNull(r.[EndDate],'01-01-2099') and r.startdate>h.startdate)
    or (IsNull(h.[EndDate],'01-01-2099')=IsNull(r.[EndDate],'01-01-2099') and r.startdate<h.startdate)

    я даже знать не хочу, что в этом запросе на 140 строк происходит, и молю богу, чтобы это не ломалось, пока автор этого в декрете.
    форматирование убрал, а то в 6к символов не помещался
    отформатировать можно тут http://poorsql.com/

    Lokich, 02 Апреля 2014

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