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

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

    +70

    1. 1
    if (sAttrName.equalsIgnoreCase("10")) {

    someone, 23 Апреля 2012

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    foreach ($metrics as $m)
    		{
    		eval('$data["'.$a.'"]["'.$m.'"] = $result->get'.$m.'();');
    		}

    На одном из сайтов который объясняют как работать с гугл аналикс апи.
    Нафига выполнять столько раз евал???

    не легче и лучше
    $key = 'get' . $m;
    $data[$a][$m] = $result->{$key}();
    евалить стопицот рас???

    3xdimon, 19 Апреля 2012

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

    +1002

    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
    //pugiXML.cpp:
    template <bool _1, bool _2, bool _3, bool _4> struct opt4_to_type
    	{
    		static const bool o1;
    		static const bool o2;
    		static const bool o3;
    		static const bool o4;
    	};
    
    	template <bool _1, bool _2, bool _3, bool _4> const bool opt4_to_type<_1, _2, _3, _4>::o1 = _1;
    	template <bool _1, bool _2, bool _3, bool _4> const bool opt4_to_type<_1, _2, _3, _4>::o2 = _2;
    	template <bool _1, bool _2, bool _3, bool _4> const bool opt4_to_type<_1, _2, _3, _4>::o3 = _3;
    	template <bool _1, bool _2, bool _3, bool _4> const bool opt4_to_type<_1, _2, _3, _4>::o4 = _4;
    //...
    case 0:  return strconv_attribute_t(s, end_quote, opt4_to_type<0, 0, 0, 0>());
    		case 1:  return strconv_attribute_t(s, end_quote, opt4_to_type<0, 0, 0, 1>());
    		case 2:  return strconv_attribute_t(s, end_quote, opt4_to_type<0, 0, 1, 0>());
    		case 3:  return strconv_attribute_t(s, end_quote, opt4_to_type<0, 0, 1, 1>());
    		case 4:  return strconv_attribute_t(s, end_quote, opt4_to_type<0, 1, 0, 0>());
    		case 5:  return strconv_attribute_t(s, end_quote, opt4_to_type<0, 1, 0, 1>());
    //...
    		case 14: return strconv_attribute_t(s, end_quote, opt4_to_type<1, 1, 1, 0>());
    		case 15: return strconv_attribute_t(s, end_quote, opt4_to_type<1, 1, 1, 1>());
    //...
    inline xml_parse_result make_parse_result(xml_parse_status status, unsigned int offset, unsigned int line)
    	{
    		xml_parse_result result = {status, offset, line};
    		return result;
    	}
    
    //pugixpath.cpp:
    block = static_cast<memory_block*>(operator new(size + sizeof(memory_block) - xpath_memory_block_size));

    PugiXML

    Говногость, 16 Апреля 2012

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

    +1002

    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
    void TExternalIOBuffer::swap(TExternalIOBuffer& Buffer)
    {
    	ASSERT(typeid(Buffer)==typeid(TExternalIOBuffer));
    	const TExternalIOBuffer CurrentBuffer=*this;
    	const TExternalIOBuffer OtherBuffer=Buffer;
    	Buffer.~TExternalIOBuffer();
    	::new((void*)&Buffer) TExternalIOBuffer(CurrentBuffer);
    	this->~TExternalIOBuffer();
    	::new((void*)this) TExternalIOBuffer(OtherBuffer);
    };
    
    const TExternalIOBuffer& TExternalIOBuffer::operator=(const TAbstractIOBuffer& Buffer)
    {
    	this->~TExternalIOBuffer();
    	::new((void*)this)TExternalIOBuffer(Buffer);
    	return *this;
    };

    Большой проект, попало в релиз.

    Говногость, 16 Апреля 2012

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    foreach ($items as $item_id)
    {
        if ((int)$item_id<=0)
            die();
        // ...
        if (!$redis->sIsMember("views_today_stats_sadd:{$views_stats_namespace}",$key))
            $redis->sAdd("views_today_stats_sadd:{$views_stats_namespace}",$key);
        // ...
    }

    Пехепешник второго уровня: циклы уже осилил, а вот с множествами пока не разобрался.

    roman-kashitsyn, 14 Апреля 2012

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

    +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
    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
    $(document).ready(function(){ 
    
            // ...
    
    	var nom1=0;
    	var nom2=0;
    	
    	$("#first").live("hover", function() {
    		$(".blocks1").addClass('activ_block');
    		$(".blocks1 .block1").addClass('activ_block');
    		$(".blocks1 .block2").addClass('activ_block');
    		$(".blocks1 .block2 ul").eq(0).addClass('activ_block');
    		$(".blocks1 .block1 a").eq(0).addClass('active_red');
    		nom1 = 0;
    		
    		$(".blocks").removeClass('activ_block');
    		$(".blocks2").removeClass('activ_block');
    		$(".blocks3").removeClass('activ_block');
    		$(".blocks .blocks ul").removeClass('activ_block');
    		$(".blocks .blocks div").removeClass('activ_block');
    		$(".blocks .block1").removeClass('activ_block');
    		$(".blocks .block2").removeClass('activ_block');
    		$(".blocks .block3").removeClass('activ_block');
    		$(".blocks .block1 a").removeClass('active_reds');
    		$(".blocks .block2 a").removeClass('active_reds');
    	});
    	
    	$(".blocks1 .block1 a").live("click", function() { 
    		nom1 = $(".blocks1 .block1 a").index(this); // id level 2
    		$(".blocks1 .block1 a").removeClass('active_red');
    		$(this).addClass('active_red');
    		$(".blocks1 .block2 ul").removeClass('activ_block');
    		$(".blocks1 .block2").addClass('activ_block');
    		$(".blocks1 .block2 ul").eq((nom1)).addClass('activ_block');	
    	});
    	
    	$(".blocks1 .block2 a").live("hover", function() { 
    		nom2 = $(".blocks1 .block2 ul.activ_block a").index(this); // id level 3
    		
    		$(".blocks1 .block3 div").removeClass('activ_block');
    		$(".blocks1 .block3 div div").removeClass('activ_block');
    		$(".blocks1 .block3").addClass('activ_block');
    		$(".blocks1 .block3 div.z").eq((nom1)).addClass('activ_block');
    		$(".blocks1 .block3 div.activ_block div").eq((nom2)).addClass('activ_block');
    
    		$(".blocks1 .block2 a").removeClass('active_reds');
    		$(this).addClass('active_reds');		
    	});
    	
    	$(".blocks1 .block1").hover(function() { 
    		$(".blocks1 .block3").removeClass('activ_block');
    		$(".blocks1 .block2 a").removeClass('active_reds');
    		$(".blocks1 .block3 div").removeClass('activ_block');
    		$(".blocks1 .block3 div div").removeClass('activ_block');
    	} , 
    	function() {
    		
    	});
    	
    	$(".blocks1 .block3").hover(function() { 
    	} , 
    	function() {
    		
    	});
    	
    	$(".blocks1 .block2").hover(function() {
    		$(".blocks1 .block3").removeClass('activ_block');
    		$(".blocks1 .block3 div").removeClass('activ_block');
    		$(".blocks1 .block2 a").removeClass('active_reds');
    	} , 
    	function() { 
    		if ($(".blocks1 .block3").hasClass('activ_block')) {
    		} else {
    		}
    	});
    
            // ...
    
    });

    Очередной шедевр jQuery-мастеров. Скрипт меню, приведенный код - около трети от общего количества такого же.

    sap1ens, 13 Апреля 2012

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if($errors == 0){
                $filename = 'films.txt';
                if(!file_exists($filename)){
                    flose(fopen($filename,'w'));
                }
    }

    denis90, 12 Апреля 2012

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    bool THotKeysRepository::TKeyCombination::operator<( const TKeyCombination& y ) const
    {
    	return this->_AltKeyState<y._AltKeyState && this->_ScanCode<y._ScanCode;
    }

    Говногость, 11 Апреля 2012

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

    +133

    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
    <?php
    
    class InitVars {
    # Недопустимые слова в запросах
            var $deny_words = array("union","char","select","update","group","order","benchmark","null","/*","UNION","CHAR","SELECT","UPDATE","GROUP","ORDER","BENCHMARK","NULL",);
    
    function InitVars() {
    }
    
    # Метод конвентирует суперглобальные массивы $_POST, $_GET в перемнные
    # Например : $_GET['psw'] будет переобразовано в $psw с тем же значением
    function convertArray2Vars () {
    
            foreach($_GET as $_ind => $_val) {
                    global $$_ind;
                    if(is_array($$_ind)) $$_ind = htmlspecialchars(stripslashes($_val));
            }
    
            foreach($_POST as $_ind => $_val) {
                    global $$_ind;
                    if(is_array($$_ind)) $$_ind = htmlspecialchars(stripslashes($_val));
    
            }
    }
    
    # Метод проверяет $_GET и $_POST переменные на наличие опасных данных и SQL инъекций
    function checkVars() {
            //Проверка опасных данных.
            foreach($_GET as $_ind => $_val) {
                            $_GET[$_ind] = htmlspecialchars(stripslashes($_val));
    
                            $exp = explode(" ",$_GET[$_ind]);
                            foreach($exp as $ind => $val) {
                                    if(in_array($val,$this->deny_words)) $this->antihack("Послушайте, мои маленькие кул хацкеры... Несанкционированный доступ в БД карается лишением свободы на срок от 3-х до 5-ти лет. <br> Ваш ip адресс помечен. Вам ведь не нужны проблемы, правда?. ");
                            }
            }
    
            foreach($_POST as $_ind => $_val) {
                            $_POST[$_ind] = htmlspecialchars(stripslashes($_val));
    
                            $exp = explode(" ",$_POST[$_ind]);
                            foreach($exp as $ind => $val) {
                                    if(in_array($val,$this->deny_words)) $this->antihack("Послушайте, мои маленькие кул хацкеры... Несанкционированный доступ в БД карается лишением свободы на срок от 3-х до 5-ти лет. <br> Ваш ip адресс помечен. Вам ведь не нужны проблемы, правда?.");
                            }
            }
    
    }
    
    function antihack($msg) {
        echo "<font color='red'><b>Antihack error: </b></font>$msg<br>\n";
        die;
    }
    
    }
    
    
    
    ?>

    Защита от SQL инъекций.

    Vasiliy, 09 Апреля 2012

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

    +153

    1. 1
    2. 2
    imagettftext ($im,9, 0, 12, 21, $black,$font, 'Mike Lowry');
    imagettftext ($im,9, 0, 10, 20, $text_color,$font, 'Mike Lowry');

    Профессиональная тень текста. Скоро в ваших экранах.

    stuffort, 07 Апреля 2012

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