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

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

    +148

    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
    <?
    	$optSelect['10'] = ($_REQUEST['sort_count']=='10') ? 'selected' : '';
    	$optSelect['20'] = ($_REQUEST['sort_count']=='20') ? 'selected' : '';
    	$optSelect['50'] = ($_REQUEST['sort_count']=='50') ? 'selected' : '';
    	$optSelect['all'] = ($_REQUEST['sort_count']=='all') ? 'selected' : '';
    	
    	$remParams = array('sort_count');
            //функция GetCurPageParam в битрикс возвращает путь к текущей странице с добавлением/удалением параметров (автор поста) 
    	$optValueURI['10'] = $APPLICATION->GetCurPageParam('sort_count=10', $remParams);
    	$optValueURI['20'] = $APPLICATION->GetCurPageParam('sort_count=20', $remParams);
    	$optValueURI['50'] = $APPLICATION->GetCurPageParam('sort_count=50', $remParams);
    	$optValueURI['all'] = $APPLICATION->GetCurPageParam('sort_count=all', $remParams);
    			
    	$optValue['10'] = $siteURL . $optValueURI['10'];
    	$optValue['20'] = $siteURL . $optValueURI['20'];
    	$optValue['50'] = $siteURL . $optValueURI['50'];
    	$optValue['all'] = $siteURL . $optValueURI['all'];
    ?>
    <select onChange="location=this.value">
    	<option <?=$optSelect['10']?> value="<?=$optValue['10']?>">10</option>
    	<option <?=$optSelect['20']?> value="<?=$optValue['20']?>">20</option>
    	<option <?=$optSelect['50']?> value="<?=$optValue['50']?>">50</option>
    	<option <?=$optSelect['all']?> value="<?=$optValue['all']?>">Все</option>
    </select>

    Реализация Селекта количества выводимых элементов на странице. Сайт делал топовый партнёр 1c-Bitrix.
    Я думаю, что разумнее было бы сделать так:
    $arPages = array(10, 20, 50, 'all');
    foreach ($arPages as $page) {?>
    <option <?if($page == $_REQUEST['sort_count']){?>selected<?}?>>$page</option>
    <?}?>
    Ну и для сабмита можно какую нибудь нормальную функцию в JS написать.

    Cool-Di, 26 Ноября 2010

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

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    https://habr.com/ru/post/465553/
    
    А правда, почему компилятор C++ позволяет писать такую хуету
    x+= x++ + ++x;
    x^=y^=x^=y;
    ?

    IIIyqpymuHckuu_nemyx, 03 Сентября 2019

    Комментарии (290)
  4. C++ / Говнокод #25097

    −1

    1. 1
    2. 2
    3. 3
    class Govno {
            virtual void govno() = 0;
    };

    Откуда такой дурацкий синтаксис? ))
    Прочитал у страуса, джва дня смеюсь.

    Может кто-то знает причину?

    vistefan, 19 Ноября 2018

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

    +159

    1. 1
    2. 2
    3. 3
    ...
    $ORDER_ID = urldecode(urldecode($_REQUEST["ORDER_ID"]));
    ...

    битрикс :)

    p0p, 02 Апреля 2015

    Комментарии (288)
  6. Java / Говнокод #17907

    +78

    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
    public void initializeMap() {
            for(Point p: getPoints()) {
               {
                    Address address = p.getAddress();
                    LatLng position = new LatLng(address.getLatitude(), address.getLongitude());
                    //... 
                } //  (2)
    
                for (Item item : items) {
                            Address address = item.getAddress();
                            LatLng position = new LatLng(address.getLatitude(), address.getLongitude());
                            //... 
                }
           }
    }

    автору лень придумывать вменяемые имена переменных, для кода ниже. по сему, он просто оборачивает верний код в новый блок и вуаля - можно реюзать те самые имена.
    не совсем уверен говнокод ли это, но как минимум это - глупо.

    lowercase, 01 Апреля 2015

    Комментарии (288)
  7. Куча / Говнокод #15278

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    http://www.youtube.com/watch?v=swAEcc9JX4Q
    
    (автор пишет троян на дельфях, и комментирует)
    
    убила фраза:
    
    "...реестр[...]. Так как в линуксе все по-другому, Вы должны быть уверены, что ваша программа запускается на Windows"

    убила фраза:

    "...реестр[...]. Так как в линуксе все по-другому, Вы должны быть уверены, что ваша программа запускается на Windows"

    Stertor, 01 Марта 2014

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

    −1

    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
    if (isset($_GET['org'])) {
    $org=htmlspecialchars($_GET["org"]);
    }
    else $org=1;
    if ($num_resultsdop) {
    $sql = "SELECT * FROM `baza`, `sankomerc`, `sandop` WHERE baza.id='$org' and sankomerc.id='$org' and sandop.id='$org'";
    }
    else {
        $sql = "SELECT * FROM `baza`, `sankomerc` WHERE baza.id='$org' and sankomerc.id='$org'";
    }
    $row = mysql_fetch_array($result);
        $chotz=$row['chotz'];
        $nazvanie=$row['nazvanie'];
        $nazvaniech=$row['nazvanie'];
    
        //типографим название
        $typograph->set_text($nazvanie);
        $nazvanie = $typograph->apply();
        $nazvanienotags = strip_tags($nazvanie);

    SEO: #nazvanienotags

    SemaReal, помнишь, я тебе говорил, что летом скорее всего перейду на другую работу или восстановлюсь в универе?
    Тогда моя претензия была в том, что используют устаревающий Yii2, что нет CI, нет тестов…
    После импровизированного отпуска я пришёл, и получил проект, пример реального кода из которого ты видишь.

    vistefan, 06 Июля 2018

    Комментарии (286)
  9. SQL / Говнокод #18394

    −163

    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
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    SET DELETED ON
    store 0 to r_klot,r_kpot,r_vspot,r_klgv,r_kpgv,r_vspgv,r_klvod,r_kpvod,r_vspvod,r_klngv,r_kpngv,r_vspngv
    store 0 to r_klkan,r_kpkan,r_sumkan,r_klmys,r_kpmys,r_summys,r_klmys1,r_kpmys1,r_summys1,r_vspmys,r_vspkan,r_vspmys1
    STORE 0 TO r_klmys2,r_kpmys2,r_summys2,r_vspmys2
    STORE 0 TO r_klmys3,r_kpmys3,r_summys3,r_vspmys3
    STORE 0 TO r_klmys4,r_kpmys4,r_summys4,r_vspmys4
    STORE 0 TO r_klmys5,r_kpmys5,r_summys5,r_vspmys5
    SELECT 2
    USE tarif INDEX tarif SHARED
    SELECT 1
    use kw SHARED
    SET RELATION TO kodtar INTO tarif
    go top
    do while .not. eof()
    if kw.ot=0
    r_klot=r_klot+1
    r_kpot=r_kpot+kp
    r_vspot=r_vspot+vsp
    endif
    if kw.gv#0 .or. prgvod=0
    r_klgv=r_klgv+1
    r_kpgv=r_kpgv+kp
    r_vspgv=r_vspgv+vsp
    endif
    if kw.vod#0 .or. prv=0
    r_klvod=r_klvod+1
    r_kpvod=r_kpvod+kp
    r_vspvod=r_vspvod+vsp
    endif
    IF tarif.tgv#0
    r_klngv=r_klngv+1
    r_kpngv=r_kpngv+kp
    r_vspngv=r_vspngv+vsp
    ENDIF
    IF kw.kan#0
    r_klkan=r_klkan+1
    r_kpkan=r_kpkan+kp
    r_sumkan=r_sumkan+kan
    r_vspkan=r_vspkan+vsp
    ENDIF
    IF kw.mys#0
    r_klmys=r_klmys+1
    r_kpmys=r_kpmys+kp
    r_summys=r_summys+mys
    r_vspmys=r_vspmys+vsp
    ENDIF
    *газ.плита 2-х комфорочная
    IF kw.gpp=1
    r_klmys1=r_klmys1+1
    r_kpmys1=r_kpmys1+kp
    r_summys1=r_summys1+gps
    r_vspmys1=r_vspmys1+vsp
    ENDIF
    *газ.плита 4-х комфорочная
    IF kw.gpp=2
    r_klmys2=r_klmys2+1
    r_kpmys2=r_kpmys2+kp
    r_summys2=r_summys2+gps
    r_vspmys2=r_vspmys2+vsp
    ENDIF
    *нагреватель проточный (обычная колонка)
    IF kw.gkp=1
    r_klmys3=r_klmys3+1
    r_kpmys3=r_kpmys3+kp
    r_summys3=r_summys3+gks
    r_vspmys3=r_vspmys3+vsp
    ENDIF
    *нагреватель емкостной, газовый (титан)
    IF kw.gkp=2
    r_klmys4=r_klmys4+1
    r_kpmys4=r_kpmys4+kp
    r_summys4=r_summys4+gks
    r_vspmys4=r_vspmys4+vsp
    ENDIF
    *водоотведение
    IF kw.yb#0
    r_klmys5=r_klmys5+1
    r_kpmys5=r_kpmys5+kp
    r_summys5=r_summys5+yb
    r_vspmys5=r_vspmys5+vsp
    ENDIF
    skip
    enddo
    REPORT FORM spr1r TO PRINTER prompt PREVIEW 
    ---
    set date british
      select 2
     use sprstr index sprstr SHARED 
    SET ORDER TO TAG KST OF SPRSTR.CDX
    SELE 3
     USE TARIF INDEX TARIF SHARED
      select 1
     use kw index kw1 SHARED 
    
     set relation to kst into b,kodtar INTO c
    SET FILTER TO ls=r_ls  
    sdr=DTOC(thisform.text1.Value)
    REPORT FORM subsid PREVIEW

    Вот такой пиздец мне надо сопровождать и дописывать. Судя по говённости кода, по уёбскому названию переменных, по дико ебланской манере писать код - аффтар из Дульфистов, только у них может получиться настолько уёбский код.

    DelphiGovno, 24 Июня 2015

    Комментарии (285)
  10. Куча / Говнокод #25999

    +2

    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
    https://habr.com/ru/post/472970/
    
    Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля
    
    в Full самая наркомания, с точки зрения сетевика: длина,
    sequence number, причем НЕ ТОТ, что в основном MTProto,
    тело, CRC32. Да, всё это поверх TCP. Который предоставляет
    нам надежный транспорт в виде последовательного потока байт,
    никакие последовательности не нужны, тем более контрольные
    суммы. Окей, мне сейчас возразят, что в TCP 16-битная
    контрольная сумма, так что искажение данных случается.
    Отлично, только у нас вообще-то криптографический протокол
    с хэшами длиннее 16 байт, все эти ошибки — и даже
    более — будут отловлены на несовпадении SHA уровнем выше.
    Никакого смысла в CRC32 поверх этого — НЕТ.

    Ебать дебилы

    j123123, 27 Октября 2019

    Комментарии (284)
  11. PHP / Говнокод #20014

    0

    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
    function loadQuestionsInTest() {
      $mysqli = connectDB();
      $testID = $_POST['testID'];
      $testSets = $mysqli -> query('select * from testsets where test_id = '.$testID.';');
      if ($testSets->num_rows > 0) {
        $query = [];
        while ($row = $testSets -> fetch_assoc()) {
          $loID = $row['lo_id'];
          $questionsCount = $row['count'];
          $questionsInLO = $mysqli -> query('select count(*) as num from questions where lo_id = '.$loID.';') -> fetch_assoc()['num'];
          if ($questionsCount > $questionsInLO)
            $questionsCount = $questionsInLO;
          $query[] = '(select id, content, result, lo_id from questions where lo_id = '.$loID.' order by rand() limit '.$questionsCount.')';
        }
        $query = implode(' union ', $query).' order by rand();';
        
        $questionRes = $mysqli -> query($query);
        $questions = array();
        while ($row = $questionRes->fetch_assoc()) {
          $questionType = json_decode($row['result']) -> type;
          if ($questionType == 'check') {
            $question = array(
              'id' => $row['id'],
              'content' => $row['content'],
              'loID' => $row['lo_id']
            );
            array_push($questions, $question);
          } else if ($questionType == 'input') {
            $questionContent = json_decode($row['result']);
            $questionText = $questionContent -> text;
            $answers = $questionContent -> answers;
            for ($i = count($answers) -1; $i >= 0; $i--)
              $questionText = mb_substr_replace($questionText, '(|answer'.$answers[$i] -> id.'|)', $answers[$i] -> posStart, $answers[$i] -> posEnd - $answers[$i] -> posStart);
            $content = array( 'type' => 'input', 'text' => $questionText );
            $question = array(
              'id' => $row['id'],
              'content' => json_encode($content, JSON_UNESCAPED_UNICODE),
              'loID' => $row['lo_id']
            );
            array_push($questions, $question);
          }
        }
        $response = json_encode($questions, JSON_UNESCAPED_UNICODE);
        echo $response;
        $mysqli -> close();
        return;
      }
      echo '[]';
      $mysqli -> close();
    }

    Моя дипломная работа по теме "тестирование студентов". Загрузка вопросов для прохождения теста из базы. Вопросы должны идти в рандомном порядке, варианты ответов тоже.

    cotheq, 16 Мая 2016

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