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

    В номинации:
    За время:
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. PHP / Говнокод #9552

    +154

    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
    {if $active_user == '0'}
       <div class="setting_problems">
          <div class="number">
             <span>1</span>
          </div>
       </div>
    {/if}
    
    {if !$shop_connect}
       <div class="setting_problems" style="background-color:#ffe1b2; border-color:#ff9c01;">
          <div class="number">
             <span>{if $active_user == '0'}2{else}1{/if}</span>
          </div>
       </div>
    {/if}

    вывод ошибок в smarty

    codename, 27 Февраля 2012

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

    +120

    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
    Пришёл крешлог нашего приложения от пользователя
    
    Error Message:
    Segmentation fault
    
    Backtrace:
    
    <someapp>:0:in `0x00076d9f ht_handle_signal + 94'
    libsystem_c.dylib:1:in `0x37cb9539 _sigtramp + 48'
    JavaScriptCore:2:in `0x362d7aef WTFReportBacktrace + 146'
    JavaScriptCore:3:in `0x3621d173 _ZN3WTF12_GLOBAL__N_125ARC4RandomNumberGenerator12stirIfNeededEv + 26'
    JavaScriptCore:4:in `0x3621d0b3 _ZN3WTF29cryptographicallyRandomNumberEv + 102'
    JavaScriptCore:5:in `0x36227991 _ZN3WTF12randomNumberEv + 8'
    WebCore:6:in `0x32c3104b _ZN7WebCore17JSDOMGlobalObjectC2ERN3JSC12JSGlobalDataEPNS1_9StructureEN3WTF10PassRefPtrINS_15DOMWrapperWorldEEEPNS1_8JSObjectE + 138'
    <...>
    
    Внимательно смотрим лог, идём по ссылке
    http://trac.webkit.org/browser/releases/Apple/Safari%205.1/JavaScriptCore/wtf/Assertions.h
    и впечатляемся названиями переменных
    Краш, кстати, в генераторе случайных чисел, судя по логу...

    krypt, 24 Февраля 2012

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

    +24

    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
    function on_record(status)
    {
    	// Ext.MessageBox.prompt('Name', 'Please enter your name:', 1);
    	var label = form2label();
        if(label['answers'][10]==1&&label['start']=='1970-01-01 03:00:00'&&label['order_num']!='1'){
            label['start'] = get_starttime_mysql();
        }
        else if(label['answers'][10]==2&&label['start']=='1970-01-01 03:00:00'){
            label['start'] = get_finishtime_mysql();
        }
    	label['status'] = status;
    	save_label(label);
    
    }

    превед.

    brainstorm, 20 Февраля 2012

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

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function count_arr($arr)
        {
            $rr = array_keys($arr);
            if ($rr[0] !== 0) return 1;
    
            $i = 0;
            foreach ($arr as $k => $v) $i++;
    
            return $i;
        }

    no comments qq

    englandpost, 16 Февраля 2012

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