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

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

    +161

    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
    /**
     * @param array $config
     * @return App_Ldap
     */
    private final function __construct(array $config)
    {
    
        if (!empty($config['host'])) {
            $this->_host = $config['host'];
    
            $dnTemp = explode('.', $this->_host);
            $dnTemp = array_map(function($value)
                {
                    return 'dc=' . $value;
                }, $dnTemp);
    
            $this->_dn = implode(',', $dnTemp);
        } else {
            throw new Exception('I need LDAP host');
        }
    
        if (!empty($config['user'])) {
            $this->_user = $config['user'];
        } else {
            throw new Exception('I need LDAP login');
        }
    
        if (!empty($config['pass'])) {
            $this->_pass = $config['pass'];
        } else {
            throw new Exception('I need LDAP pass');
        }
    
        return $this;
    }

    ykhrustalev, 24 Августа 2011

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $result = $db->query("SELECT w.wine_name as wine_name,(SELECT wine_type FROM wine_type WHERE wine_id_type = w.wine_type) as wine_type,
    	                             (SELECT variety FROM grape_variety WHERE variety_id = (SELECT variety_id FROM wine_variety WHERE wine_id = w.wine_id)) AS wine_variety,
    								 w.year as wine_year, (SELECT winery_name FROM winery WHERE winery_id = w.winery_id) as winery,
    								 (SELECT region_name FROM region WHERE region_id = (SELECT region_id FROM winery WHERE winery_id = w.winery_id)) as winery_region,
    								 (SELECT cost FROM inventory WHERE wine_id = w.wine_id) as wine_cost,
    								 (SELECT on_hand FROM inventory WHERE wine_id = w.wine_id) as wine_quantity
    	                      FROM wine w
    						  WHERE w.wine_id = '$id'");

    достаём данные из базы для страницы редактирования ...

    denis90, 23 Августа 2011

    Комментарии (10)
  4. Pascal / Говнокод #7624

    +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
    80. 80
    81. 81
    82. 82
    83. 83
    function HexWrdToStr(Dval : integer) : string;
    var i : integer;
    retstr : string;
    begin
    retstr := '';
    i := (Dval AND $F000) DIV $1000;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    i := (Dval AND $F00) DIV $100;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    i := (Dval AND $F0) DIV $10;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    i := Dval AND $F;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    HexWrdToStr := retstr;
    end;

    Авторы - программисты из FTDI, взято из экзамплов работы с USB-конвертерами.
    Полный текст можно найти здесь: __http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/Delphi.htm

    З.Ы. Ниже по тексту идет аналогичная функция HexByteToStr. Алгоритм, так сказать, тот же.

    1291, 23 Августа 2011

    Комментарии (10)
  5. C++ / Говнокод #7610

    +161

    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
    /// ...хде-то в начале огромной-преогромной функции...
    #define ADD_GRAPH(gid,gmod) m_Registry[TGraphId(gid,gmod)] = new
    /// ...хде-то по её середине...
    #define ADD_MAP_WEAPON_OVERLAY(name_base,file_name)\
      for (i=0; i<8; i++)\
      {\
        ADD_GRAPH(name_base _T("S"),i) (CLoadImage (\
          file_name,\
          TImageFX ()\
          .SetColorReplacementFX (g_WeaponRecolor[i],2,0)\
          ));\
        ADD_GRAPH(name_base _T("Q"),i) (CLoadImage (\
          file_name,\
          TImageFX ()\
          .SetColorReplacementFX (g_WeaponRecolor[i],2,1)\
          ));\
      }
    #define ADD_MAP_WEAPON_OUTLINE(name_base,file_name)\
      ADD_GRAPH(name_base _T("C"),0) (CLoadImage (\
          file_name,\
          TImageFX ()\
          .SetColorReplacementFX (g_WeaponRecolor[0],2,2)\
          ));
    
    ADD_MAP_WEAPON_OVERLAY (_T("CellSword"),_T("cell_weap_sword.png"));
    ADD_MAP_WEAPON_OVERLAY (_T("CellAxe"),_T("cell_weap_axe.png"));
    ADD_MAP_WEAPON_OVERLAY (_T("CellEshock"),_T("cell_weap_eshock.png"));
    ADD_MAP_WEAPON_OVERLAY (_T("CellLance"),_T("cell_weap_lance.png"));
    //... тут очень много в таком же духе ...
    ADD_MAP_WEAPON_OUTLINE (_T("CellXbow"),_T("cell_weap_xbow.png"));
    ADD_MAP_WEAPON_OUTLINE (_T("CellRifle"),_T("cell_weap_rifle.png"));
    ADD_MAP_WEAPON_OUTLINE (_T("CellPistol"),_T("cell_weap_pistol.png"));

    >Как бы оно выглядело без макросов, предоставляю гадать желающим.
    Эстеты, разумеется, могут возопить: "Пошто было не вынести всё это в функцию?!" Пото, что функцию (а она потребовалась бы методом) пришлось бы описывать в хедере вместе с классом + имплементировать где-то снаружи текущей функции - весёлое занятие, нечего сказать. Это при том, что данный конкретный кусок кода на момент написания сильномутабелен в плане кол-ва требующихся параметров, и в перспективе мог вообще исчезнуть/слиться с другим. И таких кусков там ~100500. Возможностей, с которыми использование функций для подобного действа не является злобным буратинством, в моём местном С++ пока не наличенствует. А так все релевантные к специфике данного куска пиписьки сконцентрированы в одном месте, умещаются на 1 экран, и я спокоен за возвращение к нему через много времени.

    CPPGovno, 21 Августа 2011

    Комментарии (10)
  6. C++ / Говнокод #7600

    +164

    1. 1
    for(int i(0); i<5; i++)

    Мне интересно, кто-нибудь так же пишет?

    Говногость, 20 Августа 2011

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

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php
    
     $xml = simplexml_load_string($xmlstring);
    $json = json_encode($xml);
    $array = json_decode($json,TRUE);
    
    ?>

    "Three line xml2array"
    http://www.php.net/manual/en/book.simplexml.php#105330

    striker, 18 Августа 2011

    Комментарии (10)
  8. SQL / Говнокод #7571

    −857

    1. 1
    CREATE DOMAIN D_TRIBOOL AS SMALLINT DEFAULT 0 NOT NULL CHECK (VALUE IN (-1,0,1));

    Возможно, вопрос о говнокодистости этой строчки является холиварным. Но меня приведённый отрывок по крайней мере немало удивил.

    konsoletyper, 17 Августа 2011

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

    +173

    1. 1
    define('style', '<link rel="stylesheet" type="text/css" href="/style.css">');

    такого еще не встречал... o_O

    Sulik78, 17 Августа 2011

    Комментарии (10)
  10. Java / Говнокод #7525

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    if (wdContext.nodeTable().size() <= 5)
    	wdContext.currentContextElement().setRowsIn(-1);
    else
    	wdContext.currentContextElement().setRowsIn(-1);

    foGa, 12 Августа 2011

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

    +170

    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
    foreach ( $HTTP_POST_VARS as $key => $value ) {$$key=$value;};
    
    function check_existing_dateChK($checking_date) {
        	$query = "SELECT data FROM `kursChK` WHERE `data` = '$checking_date'";
        	$result = mysql_query($query) or die("Query failed");
        	$row = mysql_fetch_assoc($result);
    	$exist_date=$row[data];
    	if ($exist_date=="") 	{
            	return true;
        		}
    	else 
    		{return false;}
    }
    
    //Рисуем форму
    	echo "<form method=post action=$PHP_SELF>
    	<table border=0 align=center>\n
    	
    	<table border=0 align=center>\n
    	<div style='font: 14px Tahoma; color: #F17D18; font-weight: bold;'>Заполнение курсов для Интернет-банка</div><br>
    	<tr><td>Дата</td>\n
    	<td><input type='text' name='dataChK' value = '$current_date' maxlength=10></td>\n
    	</tr>\n
    	<tr><td>Валюта</td><td>Покупка</td><td>Продажа</td></tr>\n
    	<tr><td>USD</td>
    	<td><input type='text' name='usdpoChK' value = '$usdpoChK_last' maxlength=5></td>
    	<td><input type='text' name='usdprChK' value = '$usdprChK_last' maxlength=5></td></tr>\n
    	<tr><td>EURO</td>
    	<td><input type='text' name='eurpoChK' value = '$eurpoChK_last' maxlength=5></td>
    	<td><input type='text' name='eurprChK'value = '$eurprChK_last' maxlength=5></td></tr>\n
    	</table\n>
    	
    	
    	<input type=submit value='Добавить курсы' name='sub'> 
    	<input type=reset value=Вернуть name= reset value = '$data_l'> 
    	</form><br><center><a href='http://10.1.1.234/ibank_kurs/trans.php'>Обновить курсы в ЧК</a></center><br>";
    
    // ... много говна ...
    
      if ($sub=='Добавить курсы' and ($dataChK == "" or !check_existing_dateChK($dataChK)))
      {
        ?>
        <SCRIPT LANGUAGE="javascript"> alert("Запись с такой датой уже существует");
        javascript:history.back(1);
        </SCRIPT>
        <?
        $add_record=false;
      }
    /.../ и так еще раз 20 в коде ниже

    Обратите внимание, каким способом мы узнаем, какое действие совершил пользователь - по надписи на кнопочке! Про SQL-запрос я вообще молчу.

    scriptin, 11 Августа 2011

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