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

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

    +100

    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
    function Tf_MainFrame.DateToText(d: TDate; tp: integer): string;
    var s: string;
        g: integer;
    begin
      if DateToStr(d) = '00.00.0000' then
      begin
        result := '';
      end else begin
      case tp of
        2:begin
            s := ''; DateTimeToString(s,'dd',d);
            result := s;
            DateTimeToString(s,'mm',d);
            g := StrToInt(s);
            DateTimeToString(s,'yyyy',d);
            case g of
                1:  begin result := result + ' января ' + s; end;
                2:  begin result := result + ' февраля ' + s; end;
                3:  begin result := result + ' марта ' + s; end;
                4:  begin result := result + ' апреля ' + s; end;
                5:  begin result := result + ' майя ' + s; end;
                6:  begin result := result + ' июня ' + s; end;
                7:  begin result := result + ' июля ' + s; end;
                8:  begin result := result + ' августа ' + s; end;
                9:  begin result := result + ' сентября ' + s; end;
                10: begin result := result + ' октября ' + s; end;
                11: begin result := result + ' ноября ' + s; end;
                12: begin result := result + ' декабря ' + s; end;
            end;
          end
        else begin
           result := DateToStr(d);
        end;
      end;
      end;
    end;

    Календарь ацтеков, месяц майя:)

    Nilud, 18 Мая 2012

    Комментарии (24)
  3. C# / Говнокод #10288

    +91

    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
    private void changeTabItem(object parameter)
            {
                if (SelectedTabIndex == SelectedTabIndexOld) return;
                if (SelectedTabIndex != 0)
                {
                    if ([надо сохранить])
                    {
                        if ([попытка сохранить удалась]) SelectedTabIndexOld = SelectedTabIndex;
                        else SelectedTabIndex = 0;
                    }
                    else SelectedTabIndexOld = SelectedTabIndex;
    
                    if (SelectedTabIndex == 1)
                        [обновить древо]
    
                }
                else if (SelectedTabIndex != 1)
                {
                    if ([надо сохранить])
                    {
                        if ([попытка сохранить удалась]) SelectedTabIndexOld = SelectedTabIndex;
                        else SelectedTabIndex = 1;
                    }
                    else SelectedTabIndexOld = SelectedTabIndex;
                    if (SelectedTabIndex == 0)
                        [обновить древо]
                }
            }

    Раскопки продолжаются. Теперь Вашему вниманию предлагается "женское" переключение вкладок, работающее "от противного". В данном случае две вкладки, а теперь представим что надо добавить ещё пару. =)

    DukeGonzo, 16 Мая 2012

    Комментарии (24)
  4. PHP / Говнокод #10124

    +86

    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
    <?
    
    function anti_sql($expressao)    {
    
        $inject=0;
      $expressao = strtolower($expressao);
    
        //arrays com palavras e caracteres invalidos
        $badword1 = array("' or 0=0 --",'" or 0=0 --',"or 0=0 --","' or 0=0 #","admin'--",'" or 0=0 #',"or 0=0 #","' or 'x'='x",'" or "x"="x',"') or ('x'='x","' or 1=1--",'" or 1=1--',"or 1=1--","' or a=a--",'" or "a"="a',"') or ('a'='a",'") or ("a"="a','hi" or "a"="a','hi" or 1=1 --',"hi' or 1=1 --","hi' or 'a'='a","hi') or ('a'='a",'hi") or ("a"="a',"or '1=1'");
        $badword2 = array("select", " select","select "," insert"," update","update "," delete","delete "," drop","drop "," destroy","destroy ");
    
        for($i=0;$i<sizeof($badword1);$i++) {
            if(substr_count($expressao,$badword1[$i])!=0)
              $inject=1;
           }
    
             for($i=0;$i<sizeof($badword2);$i++)    {
                  if(substr_count($expressao,$badword2[$i])!=0)
                  $inject=1;
             }
    
        $charvalidos = "abcdefghijklmnopqrstuvwxyz0123456789БАГВЗЙИКНМУТФХЪЩЬСбагвзйикнмутфхъщьс!?@#$%&(){}[]:;,.-_ ";
    
         for($i=0;$i<strlen($expressao);$i++)    {
            $char = substr($expressao,$i,1);
                if(substr_count($charvalidos,$char)==0)
                   $inject=1;
             }
    
        return($inject);
    }
    
    
    ?>

    Эх, португальские кодеры...

    killro0000, 01 Мая 2012

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

    +110

    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
    public class CatalogCache : IDIsposable
    {
        public void Dispose()
        {
            if (_loadThread != null)
            {
                if (_loadThread.IsAlive)
                    _loadThread.Abort();
            }
    
            if (_updateThread != null)
            {
                if (_updateThread.IsAlive)
                    _updateThread.Abort();
            }
    }

    abatishchev, 05 Апреля 2012

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

    +166

    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
    switch ($pole['id']) {
      case 0:
              $result[0] = $pole[0]['user_key'];
              break;
      case 1:
              $result[1] = $pole[1]['user_key'];
              break;
    ...
      case 99:
              $result[99] = $pole[99]['user_key'];
              break;
    
    // somebody stop me.
    
      case 100:
              $result[100] = $pole[100]['user_key'];
              break;
    ...
    }

    не остановили...

    Razban_Guestov, 27 Февраля 2012

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

    +145

    1. 1
    а у самих на сайте (http://govnokod.ru/) при входе если после OpenID поставить пробел, то войти нельзя!

    Nataly, 17 Февраля 2012

    Комментарии (24)
  8. JavaScript / Говнокод #8840

    +181

    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
    <!--Начало сценария
    
    var res="23342142"
    
    function check_me()
    {
    	var count=0
    	with(document.test)
    	{
    		if (!Q1[0].checked&&!Q1[1].checked&&!Q1[2].checked&&!Q1[3].checked) {count+=1};
    		if (!Q2[0].checked&&!Q2[1].checked&&!Q2[2].checked&&!Q2[3].checked) {count+=1};
    		if (!Q3[0].checked&&!Q3[1].checked&&!Q3[2].checked&&!Q3[3].checked) {count+=1};
    		if (!Q4[0].checked&&!Q4[1].checked&&!Q4[2].checked&&!Q4[3].checked) {count+=1};
    		if (!Q5[0].checked&&!Q5[1].checked&&!Q5[2].checked&&!Q5[3].checked) {count+=1};
    		if (!Q6[0].checked&&!Q6[1].checked&&!Q6[2].checked&&!Q6[3].checked) {count+=1};
    		if (!Q7[0].checked&&!Q7[1].checked&&!Q7[2].checked&&!Q7[3].checked) {count+=1};
    		if (!Q8[0].checked&&!Q8[1].checked&&!Q8[2].checked&&!Q8[3].checked) {count+=1};
    		if (count>0) {alert("Вы выполнили не все задания. Проверьте себя.")} 
    		else answer()
    	}
    }
    
    function control(k,f1,f2,f3,f4,f5,f6,f7,f8)
    {
    	if (k==1&&f1.checked) return true;
    	if (k==2&&f2.checked) return true;
    	if (k==3&&f3.checked) return true;
    	if (k==4&&f4.checked) return true;
    	if (k==5&&f5.checked) return true;
    	if (k==6&&f6.checked) return true;
    	if (k==7&&f7.checked) return true;
    	if (k==8&&f8.checked) return true;
    	return false;
    }
    
    function answer()
    {
    	answ="";
    	with(document)
    	{
    		answ+=control(res.charAt(0),test.Q1[0],test.Q1[1],test.Q1[2],test.Q1[3])?"1":"0"
    		answ+=control(res.charAt(1),test.Q2[0],test.Q2[1],test.Q2[2],test.Q2[3])?"1":"0"
    		answ+=control(res.charAt(2),test.Q3[0],test.Q3[1],test.Q3[2],test.Q3[3])?"1":"0"
    		answ+=control(res.charAt(3),test.Q4[0],test.Q4[1],test.Q4[2],test.Q4[3])?"1":"0"
    		answ+=control(res.charAt(4),test.Q5[0],test.Q5[1],test.Q5[2],test.Q5[3])?"1":"0"
    		answ+=control(res.charAt(5),test.Q6[0],test.Q6[1],test.Q6[2],test.Q6[3])?"1":"0"
    		answ+=control(res.charAt(6),test.Q7[0],test.Q7[1],test.Q7[2],test.Q7[3])?"1":"0"
    		answ+=control(res.charAt(7),test.Q8[0],test.Q8[1],test.Q8[2],test.Q8[3])?"1":"0"
    		showResult();
    	}
    }
    
    function showResult()
    {
    	var nok=0;
    	var i,s;
    	for (i=0;i<answ.length;i++) {nok+=answ.charAt(i)=="1"?1:0;}
                      if(nok<4) s='"НЕУДОВЛЕТВОРИТЕЛЬНО"';
                      if(nok==4) s='"УДОВЛЕТВОРИТЕЛЬНО"';
    	if(nok>4 && nok<6) s='"УДОВЛЕТВОРИТЕЛЬНО"';
    	if(nok==6) s='"ХОРОШО"';
    	if(nok>6 && nok<8) s='"ХОРОШО"';
    	if(nok==8) s='"ОТЛИЧНО"';
    	document.test.s1.value="Количество правильных ответов "+nok+". Ваша оценка "+s+". Загляните в окно рядом с номером задания. Если ответ правильный, то там (+). Если Вы ошиблись, там (-).";
    	with(document.test)
    	{
    		if (answ.charAt(0)=="1") {T1.value=" +"} else {T1.value=" -"};
    		if (answ.charAt(1)=="1") {T2.value=" +"} else {T2.value=" -"};
    		if (answ.charAt(2)=="1") {T3.value=" +"} else {T3.value=" -"};
    		if (answ.charAt(3)=="1") {T4.value=" +"} else {T4.value=" -"};
    		if (answ.charAt(4)=="1") {T5.value=" +"} else {T5.value=" -"};
    		if (answ.charAt(5)=="1") {T6.value=" +"} else {T6.value=" -"};
    		if (answ.charAt(6)=="1") {T7.value=" +"} else {T7.value=" -"};
    		if (answ.charAt(7)=="1") {T8.value=" +"} else {T8.value=" -"};
    	}
    }

    http://www.junior.ru/wwwexam/t_gig.htm
    Тест по информатике.

    Govnocoder#0xFF, 15 Декабря 2011

    Комментарии (24)
  9. Java / Говнокод #8766

    +76

    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
    public class Xorer {
        private static long SHIFR= 71180519;
        private Xorer() {
        }
    
        /**
         * ��������� �������� value XOR shifr
         * @param value ������� �������� �������� � ��������� �������
         * @return ��������� ��� �������� �������� � ��������� �������
         */
        public static synchronized String executeString(String value){
            String res=null;
            long code=0;
            try{
                  code=Long.parseLong(value);
            } catch(Exception e){
                e.printStackTrace();
            }
            res=execute(code);
            return res;
        }
    
        /**
         * ��������� �������� value XOR shifr
         * @param code ������� �������� �������� � ������� long
         * @return ��������� ��� �������� �������� � ��������� �������
        */
        public static synchronized String execute(long code){
            String res=null;
            if(code>0){
                long newvalue= code ^ SHIFR;
                res=""+newvalue;
            }
            return res;
        }
    }

    Вот вам ещё еда.

    nikelin, 08 Декабря 2011

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

    −111

    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
    UPDATE  zayavlenie_tmp
        SET error    = 1,
            errorcod = 4
        FROM   zayavlenie_tmp
        WHERE  zayavlenie_tmp.error IS NULL
                    AND (rtrim(fam) = ''
                         OR LEN(ltrim(rtrim(fam))) < 2
                         OR fam LIKE '%0%'
                         OR fam LIKE '%1%'
                         OR fam LIKE '%2%'
                         OR fam LIKE '%3%'
                         OR fam LIKE '%4%'
                         OR fam LIKE '%5%'
                         OR fam LIKE '%6%'
                         OR fam LIKE '%7%'
                         OR fam LIKE '%8%'
                         OR fam LIKE '%9%'
    
    UPDATE  zayavlenie_tmp
        SET error    = 1,
            errorcod = 5
         FROM   zayavlenie_tmp
          WHERE  zayavlenie_tmp.error IS NULL
                    AND (rtrim(im) = ''
                         OR LEN(ltrim(rtrim(im))) < 2
                         OR im LIKE '%0%'
                         OR im LIKE '%1%'
                         OR im LIKE '%2%'
                         OR im LIKE '%3%'
                         OR im LIKE '%4%'
                         OR im LIKE '%5%'
                         OR im LIKE '%6%'
                         OR im LIKE '%7%'
                         OR im LIKE '%8%'
                         OR im LIKE '%9%'

    При импорте поля проверяются на соответствие (около 30 разнобразных правил). Хранимику писал мой начальнег :) Выкладываю УЖЕ немного исправленный для удобопонимания вариант, в исходнике таблицы еще зачем-то джойнились сами на себя. Всего в хранимике 50 (!!!) таких запросов, и каждый не менее эпичный )) Хотел исправить это хозяйство одним более-менее цивильным запросом, но где-то на половине у меня руки опустились

    spray07, 21 Ноября 2011

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

    +150

    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
    <?php
    class sql extends sleshs{
    	//Выборка из баззы
    	//Напоминалочка
    	//$select =Што ищим \\//$from= Где ищим\\//$where=Где именно\\//$param = Допалнительные параметры
    	function select($select,$from,$where=NULL,$param=NULL){
    		$myrow = mysql_query("SELECT ".$select." FROM ".$from." ".$where." ".$param."");
    		if(!(mysql_error())){
    			if(mysql_num_rows($myrow)){
    				return $myrow;
    				}else{return FALSE;}}else{return FALSE;}
    		}
    		
    		
    	//Запись в базу
    	function update($from,$array,$where,$param=NULL){
    		//Формируем запрос и слэшируем
    		for($i=0,$col=count($array)-1;$i<=$col;$i++){
    			$zap .=",`".key($array[$i])."`='".$this->slesh($array[$i][key($array[$i])],$array[$i]['slesh'])."'";
    			}
    		//Удоляем лишнию запятую
    		$zap{0}=' ';
    		//Отпровляем запрос
    		if(mysql_query("UPDATE `".$from."` SET ".$zap." ".$where." ".$param."")){return true;}else{return false;}
    		}
    		
    		
    	//Добавление записи в бд	
    	function insert($from,$array){
    		//Формируем запрос
    		for($i=0,$col=count($array)-1;$i<=$col;$i++){
    			$into .=",`".key($array[$i])."`";
    			$value .=",'".$this->slesh($array[$i][key($array[$i])],$array[$i]['slesh'])."'";
    			
    		}
    		$into{0}=' ';
    		$value{0}=' ';
    		if(mysql_query("INSERT INTO `".$from."` (".$into.") VALUE (".$value.")")){echo'good';}else{echo mysql_query();}
    		}
    	
    	//Удаление
    	function delete($from,$where){return mysql_query("DELETE FROM `".$from."` ".$where."");}
    	}
    ?>

    oop mysql

    lans8097, 13 Ноября 2011

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