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

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

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    static public function vkontakte_enabled()
    	{
    		return ( ipsRegistry::$settings['vk_enabled'] AND ipsRegistry::$settings['vk_api_id'] AND ipsRegistry::$settings['vk_secret'] ) ? TRUE : FALSE;
    	}

    * IP.Board v3.1.4
    И почему я пишу форумы сам?..

    skryisli, 23 Марта 2012

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

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // for cdio:
    #include <cdio.h>
    #include <cdio_unconfig.h> # remove *all* symbols libcdio defines
    
    // Add back in the ones you want your program
    #include <config.h>

    But now what about the problem that there are common preprocessor symbols in config_cdio.h that an application may want to define in a different manner, like PACKAGE_NAME?
    For this, there is yet another header, <cdio/cdio_unconfig.h>.

    rat4, 20 Марта 2012

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

    +72

    1. 1
    2. 2
    3. 3
    4. 4
    LOG.error(msg);
    Writer writer = new StringWriter();
    e.printStackTrace(new PrintWriter(writer, true));
    LOG.error(writer.toString());

    Паранойя... А вдруг LOG неправильно стэк трейс напечатает при передаче эксепшена вторым параметром.

    roman-kashitsyn, 19 Марта 2012

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

    +145

    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
    $sortBy = "";
            if ( isset($_REQUEST['sortBy']) && ! empty($_REQUEST['sortBy'])) {
            // Get sort direction and field sort.
                $sortByParts  = explode("-", $_REQUEST['sortBy']);
                if ( is_array($sortByParts) && ! empty($sortByParts[0]) && ! empty($sortByParts[1])) {
                    $sortBy     = $sortByParts[0];
                    $direction  = $sortByParts[1];
                }   
            } 
    switch ($sortBy)
                case "discount":
                    $sortFieldBy = $sortBy;
                    break;
                case "created":
                    $sortFieldBy = $sortBy;
                    break;
                case "vendor":
                    $sortFieldBy = $sortBy;
                    break;
                case "actual_euprice":
                    $sortFieldBy = $sortBy;
                    break;
                case "actual_euprice":
                    $sortFieldBy = $sortBy;
                    break;                
                case "top_sell_product":                
                default:
                    $search->addAdditionalJoins(
                        "top_sell_product",
                        array("top_sell_product.prodlevid" => "p.prodlevid"),
                        SEARCH_ADDITIONAL_JOIN_TYPE_INNER,
                        array()
                    );

    Очередная самописная CMS.

    zii, 18 Марта 2012

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

    +157

    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
    $k=1;
    $empty=true;?>
    <?foreach($arResult["ITEMS"] as $arItem):?>
    <?$time=time();
    $delay=345600;//секунд в 4 днях
    $date_elements  = explode(".",$arItem["DATE_ACTIVE_TO"]);?>
    	<?if(((mktime(0,0,0,$date_elements[1],$date_elements[0],$date_elements[2])+$delay) < $time) or ($arItem["PROPERTIES"]["procedure"]["VALUE_XML_ID"]=="% тут айдишник %")):?>
    		<?if($k==1):?>
    			<table><tr>
    			<th>%тут оглавления%</th>
    			<th>%тут оглавления%</th>
    			<th>%тут оглавления%</th>
    			<th>%тут оглавления%</th>
    			<th>%тут оглавления%</th></tr>
    			<?$k++;
                $empty=false;?>
    		<?endif?>
    	<?$name='';?>
    	<tr>
    	% тут перебор элементов %
    	</tr>
    	<?endif?>
    <?endforeach;?>
    </table>

    кастомизированный news.list битрикса.
    1) у каждого элемента есть ключ (номер элемента), но мы-то об этом не знаем.
    2) зачем выносить table>tr>th за цикл? И так пойдет.
    3) time() в каждой итерации? А вдруг сервер слабенький, выполнение цикла занимает больше 4-ёх дней.
    4) strtotime()? не, не слышал.
    И еще куча лулзов в проекте, выложу по ходу.
    Самое интересное, что проект крупной российской фирмы, видать местные индусы делали.

    Kreeg, 15 Марта 2012

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

    +149

    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
    #include <iostream>
    #define caseop(op, code) case op: code; break;
    #define clamp(a, lo, hi) (a < lo) ? (a = lo) : (a > hi) ? (a = hi) : a;
    void main(int argc, char* args[]) {
    	FILE *srcfile = fopen(argc > 1 ? args[1] : "", "r");
    	(!srcfile) ? exit(0) : fseek(srcfile, 0, SEEK_END);
    	unsigned char bytes[1024], *byte = bytes;
    	int x = ftell(srcfile), bs = sizeof(bytes);
    	rewind(srcfile);
    	char *source = new char[x + 1], *token = source, *ret = token;
    	fread(source, sizeof(char), x, srcfile);
    	memset(&bytes, source[x] = (char)fclose(srcfile), bs--);
    	do { 
    		switch(*token) {
    			caseop('+', ++(*byte));
    			caseop('-', --(*byte));
    			caseop('.', std::cout << *byte);
    			caseop(':', std::cout << (int)*byte);
    			caseop(',', std::cin >> *byte);
    			caseop('>', clamp(++byte, bytes, &bytes[bs]));
    			caseop('<', clamp(--byte, bytes, &bytes[bs]));
    			caseop('[', if (*byte == (x = 1) - 1) while ((*token++) && (x += *token == '[' ? 1 : *token == ']' ? -1 : 0)); else ret = token);
    			caseop(']', if (*byte) token = ret);
    		}
    	} while(*token++);
    	delete source;
    }

    Интерпретатор брэинфака

    hexman, 14 Марта 2012

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

    +149

    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
    <?PHP 
    ##### ПРОВЕРКА ДАННЫХ #####
    $admin=0;
    //тут может быть еще что-нибудь предварительное
    $admin=$_REQUEST['admin'];
    if($admin)
    {
       //..функционал админа
    }
    else
    {
       //что-то еще
    }
    
    
    ##### АВТОРИЗАЦИЯ #####
     
    $login=$_POST['login'];
    $password=$_POST['password'];
    //предполагаем соединение с БД установленным
    $result=mysql_query("SELECT user_id FROM users WHERE login=$login AND password=$password");
    if(mysql_num_rows($result))
    {
       //все хорошо - пользователь найден, выполняем процедуру его логина
    }
    else
    {
       //какая-то ошибка для пользователя
    }
    ?>

    Примеры "супер" безопасности с того же PHP.su

    Julike, 14 Марта 2012

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

    +29

    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
    function multiselect_widget_init() {
      if(variable_get('multiselect_widget_activeselall', false) === true && (variable_get('multiselect_widget_url', 'all') == 'all' || strstr($_GET['q'], variable_get('multiselect_widget_url', 'all')) !== FALSE)){
        drupal_add_css(drupal_get_path('module', 'multiselect_widget') .'/multiselect/jquery.multiSelect.css');
        drupal_add_js(drupal_get_path('module', 'multiselect_widget') .'/multiselect/jquery.multiSelect.js');
        drupal_add_js(drupal_get_path('module', 'multiselect_widget') .'/multiselect/customSelect.jquery.js');
        drupal_add_js(drupal_get_path('module', 'multiselect_widget') .'/multiselect/jquery.bgiframe.min.js');
        $selectall = variable_get('multiselect_widget_selall', 'false') ? 'true' : 'false';
        drupal_add_js("$(document).ready(function(){
            $('#edit-tid').customStyle();
      });", 'inline');
        drupal_add_js("$(document).ready( function() {
            $('".variable_get('multiselect_widget_selector', '.views-exposed-form select[multiple="multiple"]')."').multiSelect({
            selectAll: ".$selectall.",
            selectAllText: '".variable_get('multiselect_widget_selalltext', 'Выбрать все')."',
            noneSelected: '".variable_get('multiselect_widget_notselectedtext', 'Ничего не выбрано')."',
            oneOrMoreSelected: '".variable_get('multiselect_widget_countselected', 'Выбрано: %')."'
      });
      });", 'inline');
      }
    }

    не мог не удержаться...

    brainstorm, 10 Марта 2012

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

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #ifdef P3TURTLE_DEBUG
    	std::cerr << "performing search. OwnId = " << mLinkMgr->getOwnId() << std::endl ;
    #endif
    	while(mLinkMgr->getOwnId() == "")
    	{
    		std::cerr << "... waitting for connect manager to form own id." << std::endl ;
    #ifdef WIN32
    		Sleep(1000) ;
    #else
    		sleep(1) ;
    #endif
    	}

    trunk/libretroshare/src/turtle/p3turtle.cc

    rat4, 04 Марта 2012

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

    +122

    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
    for (byte b4 = 0; b4 < 8; b4 += 1)
    						{
    							this.setBit(ref value4, b4, !this.getBit(value4, b4));
    						}
    						this.RA.Value = value4;
    						if (value4 == 0)
    						{
    							this.setBit(ref value, 0, true);
    						}
    					}
    				}
    			}
    			else
    			{
    				if (command <= 56)
    				{
    					if (command != 48)
    					{
    						if (command != 52)
    						{
    							if (command == 56)
    							{
    								byte value4 = this.RA.Value;
    								if (this.getBit(value4, 0))
    								{
    									this.setBit(ref value, 1, true);
    								}
    								for (byte b5 = 0; b5 < 7; b5 += 1)
    								{
    									this.setBit(ref value4, b5, this.getBit(value4, b5 + 1));
    								}
    								this.setBit(ref value4, 7, false);
    								this.RA.Value = value4;
    								if (value4 == 0)
    								{
    									this.setBit(ref value, 0, true);
    								}
    							}
    						}
    						else
    						{
    							byte value4 = this.RA.Value;
    							if (this.getBit(value4, 7))
    							{
    								this.setBit(ref value, 1, true);
    							}
    							for (byte b6 = 7; b6 > 0; b6 -= 1)
    							{
    								this.setBit(ref value4, b6, this.getBit(value4, b6 - 1));
    							}
    							this.setBit(ref value4, 0, false);
    							this.RA.Value = value4;
    							if (value4 == 0)
    							{
    								this.setBit(ref value, 0, true);
    							}
    						}
    					}
    					else
    					{
    						byte value2 = this.RA.Value;
    						byte value3 = this.RB.Value;
    						byte b = 0;
    						for (byte b7 = 0; b7 < 8; b7 += 1)
    						{
    							this.setBit(ref b, b7, this.getBit(value2, b7) ^ this.getBit(value3, b7));
    						}
    						this.RA.Value = b;
    						if (b == 0)
    						{
    							this.setBit(ref value, 0, true);
    						}
    					}
    				}
    				else
    				{
    					switch (command)
    					{
    					case 60:
    						{
    							int value5 = (int)this.RA.Value;
    							int value6 = (int)this.RB.Value;
    							int num = value5 + value6;
    							if (num == 0)
    							{
    								this.setBit(ref value, 0, true);
    							}
    							if (num > 255)
    							{
    								this.setBit(ref value, 1, true);
    							}
    							this.RA.Value = (byte)num;
    							break;
    						}
    					case 61:
    					case 62:
    					case 63:
    						break;

    Элсы,свечи,ифы и просто хороший код №2
    (продолжение следует)
    годная реализация того что можно было написать в 10 строчек

    budlokoder_steb_dm, 03 Марта 2012

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