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

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

    −120

    1. 1
    2. 2
    3. 3
    4. 4
    private function uncaughtError (e:UncaughtErrorEvent):void {
    			// be a good girl and swallow
    			e.stopImmediatePropagation ();
    		}

    написал какую-то хуету и сижу, радуюсь как маленький. да, я хочу поговорить об этом.

    makc3d, 19 Января 2013

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

    +54

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    // sys
    if ($flag==1) {
            $rr = implode("</B>, <B>",$nks1)."</B> и <B>".implode("</B>, <B>",$nks2);
    } elseif ($flag==2) {
        $rr = implode("</B>, <B>",$nks1)."</B> и <B>".implode("</B>, <B>",$nks2)."";
    } else {
        $rr = implode("</B>, <B>",$nks1)."</B> и <B>".implode("</B>, <B>",$nks2)."";
    }

    Это нашел в движке одной онлайн игры... Три проверки, но 1 и то же действие... Логика, мать её...

    RickMan, 16 Января 2013

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

    +55

    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
    <?php
    
    // ... много строк до этого
    
    echo "<table width=100% border=0>";
    if ($row = mysql_fetch_array($result))
    	for ($i = 0; $i < mysql_num_fields($result); $i++):	
    		if (mysql_field_name($result, $i) == "ID" || (mysql_field_name($result, $i) == "info") ||
    				mysql_field_name($result, $i) == "state" || (mysql_field_name($result, $i) == "date_st") ||
    				mysql_field_name($result, $i) == "date" || (mysql_field_name($result, $i) == "email") ||
    				mysql_field_name($result, $i) == "flag" || (mysql_field_name($result, $i) == "limit_time") ||
    				mysql_field_name($result, $i) == "cr_time" || mysql_field_name($result, $i) == "cr_money" ||
    				mysql_field_name($result, $i) == "flag" || (mysql_field_name($result, $i) == "info") ||
    				mysql_field_name($result, $i) == "attention" || mysql_field_name($result, $i) == "location" ||
    				mysql_field_name($result, $i) == "mailflag" || (mysql_field_name($result, $i) == "radio") ||
    				mysql_field_name($result, $i) == "radio30" || (mysql_field_name($result, $i) == "date_num") ||
    				mysql_field_name($result, $i) == "number" || mysql_field_name($result, $i) == "login_i"
    				|| mysql_field_name($result, $i) == "is_juridical")
    		{
    			if (mysql_field_name($result, $i) == "state")
    			{
    				echo "<select name=state style=\"background-color:red;color:white\"><option value=OPEN";
    				if ($row[$i] == "OPEN")
    					echo " selected ";
    				echo ">" . trans("OPEN") . "</option>\n";
    				echo "<option value=CLOSE";
    				if ($row[$i] == "CLOSE")
    					echo " selected ";
    				echo ">" . trans("CLOSE") . "</option></select\n";
    			}
    			elseif (mysql_field_name($result, $i) == "location")
    			{
    				genLeased($row[$i]);
    			}
    			elseif (mysql_field_name($result, $i) == "radio30" || mysql_field_name($result, $i) == "radio" || 
    				 mysql_field_name($result, $i) == "mailflag" )
    			
    			{
    			}
    			elseif (mysql_field_name($result, $i) == "date_st")
    			{
    				$ar = explode("-", $row[$i]);
    				echo "<b id=red>" . $ar[2] . "." . $ar[1] . "." . $ar[0] . "</b></td></tr>\n";
    			}
    			elseif (mysql_field_name($result, $i) == "date_num")
    			{
    				$ar = explode("-", $row[$i]);
    				$dnum = $ar[2] . "." . $ar[1] . "." . $ar[0];
    				
    				echo "<b>" . $dnum . "</b></td></tr><tr><td><a href=\"contracts/index.php?user_id=" . $row['ID'] . "\">контракти</a></td></tr><tr><td colspan=2><hr noshade></td></tr>\n";
    			}
    
    			elseif (mysql_field_name($result, $i) == "date")
    			{
    				$ar = explode("-", $row[$i]);
    				$row[$i] = $ar[2] . "." . $ar[1] . "." . $ar[0];
    				echo "<input type=text name=date value=\"" . $row[$i] . "\"</td></tr>\n";
    			}
    			elseif (mysql_field_name($result, $i) == "info")
    			{
    				echo "<textarea  rows=3 name=" . mysql_field_name($result, $i) . " >" . $row[$i] . "</textarea></td></tr>\n";
    			}
    			elseif (mysql_field_name($result, $i) == "attention")
    			{
    				echo "<textarea id=warn rows=3 name=" . mysql_field_name($result, $i) . " >" . $row[$i] . "</textarea></td></tr>\n";
    			}
    // ... и так обрабатываем далее все поля

    Разработчик сначала запросил результат с помощью mysql_fetch_array,
    потом ищет название каждого поля с помощью mysql_field_name, функцией trans()
    читает файлик со словарем и переводит название каждого поле.

    Писалось не индусами, вариант "для количества" не прокатывает.
    Поэтому я не могу даже предположить, что сподвигло автора на создание сего творения.
    Файл содержит около 1400 строчек.

    rsvasilyev, 16 Января 2013

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

    +51

    1. 1
    2. 2
    3. 3
    4. 4
    function striptags($variables_for_function=array()) {
      if (!isset($variables_for_function[1])) {$variables_for_function[1]='';}
      return strip_tags($variables_for_function[0], $variables_for_function[1]);
     }

    Только сегодня и только для вас, безопасный strip_tags. Теперь с заSHITой от говнокодеров.
    PHP Innovations.

    SunnyMagadan, 15 Января 2013

    Комментарии (2)
  6. Perl / Говнокод #12381

    −119

    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
    sub merge_data_struct { # to, from, bless coderefs as
    	for(keys %{$_[1]}){
    		if(ref($_[1]->{$_}) eq 'HASH'){
    			merge_data_struct($_[0]->{$_},$_[1]->{$_},$_[2]) 
    		}
    		elsif(ref($_[1]->{$_}) eq 'CODE')
    		{
    			warn "Merge datastruct conflict at $_[2] - key $_" if $_[0]->{$_};
    			$_[0]->{$_} = $_[1]->{$_};
    			bless ($_[0]->{$_},$_[2]) if($_[2]);
    		}
    		else
    		{
    			$_[0]->{$_} = $_[1]->{$_};
    		}
    	}
    }

    $_[]{}

    nyaknyan, 02 Января 2013

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

    +55

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function process() {
        ...
        throw new Exception( $error );
        return false;
    }

    Понятно, что сперва было без исключений, но не ясно чего постеснялись убрать ретерн фелс.

    enures, 25 Декабря 2012

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

    +146

    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
    <html>
    <head>
    <style>
    td{text-align:center;width:100;height:100;border:1px solid black}
    table{border:1px solid black}
    </style>
    </head>
    <body>
    <script>
    document.write("<table><tr><td>понедельник</td><td>вторник</td><td>среда</td><td>четверг</td><td>пятница</td><td>суббота</td><td>воскресенье</td></tr><tr>");
    var mes=prompt('Введите месяц');
    var god=prompt('Введите год');
    var i;
    a=new Array("январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь");
    for(i=0;i<12;i++){if(a[i]==mes){break;}}
    d=new Date(god,i,1);
    n=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    if(d.getYear()%4==0){n[1]=29;}
    var j=n[i];
    var q=d.getDay();
    if(q==0){q=7;}
    for(i=2-q;i<=j;i++)
    {
     if(i<1){document.write("<td></td>");}
     if(i>=1){ document.write("<td>"+i+"</td>"); }
     if(q%7==0){document.write("</tr><tr>");}
     if(i>=1){q=q+1;}
    }
    for(;q%7!=0;q++){document.write("<td></td>");}
    document.write("</tr></table>");
    </script>
    </body>
    </html>

    Я правда спешил.

    dos_, 18 Декабря 2012

    Комментарии (2)
  9. JavaScript / Говнокод #12287

    +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
    function setOptionText(the_select1, the_array1, the_select2, the_array2)
    {
        the_select1.options.length=the_array1.length;
        for (loop=0; loop < the_array1.length; loop++)
        {
            the_select1.options[loop].text = the_array1[loop];
            the_select1.options[loop].value = the_array1[loop];
            if (loop==0){
                the_select1.options[loop].selected=true;
            }    
        }
    
        the_select2.options.length=the_array2.length;
        for (loop=0; loop < the_array2.length; loop++)
        {
            the_select2.options[loop].text = the_array2[loop];
            the_select2.options[loop].value = the_array2[loop];
            if (loop==0){
                the_select2.options[loop].selected=true;
            }
        }
    }

    Моему предшественнику, видимо, было лень вызывать два раза одну и ту же функцию, и потому он добавил в неё ещё два параметра и ещё девять строк кода.

    wissenstein, 14 Декабря 2012

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

    −125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Если СтрНВрОбщ.Действия = Перечисления.Действия.Удалить Тогда
    	// Такого быть не должно... 
    	Сообщить("Это сообщение не должно появиться... Обратитесь в отдел ИТ! ");
    ИначеЕсли СтрНВрОбщ.Действия = Перечисления.Действия.Добавить Тогда
    	//Тру-ля-ля... другой говнокод
    КонецЕсли;

    При чем такого действительно "быть не должно", т.к. проверка есть и в другом модуле.

    Ykov89, 29 Ноября 2012

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    for (var attempt = 0; attempt < 3; attempt++)
    {
        var result = (from neighborhood in this.DataContext.Neighborhoods
            join city in this.DataContext.Cities on neighborhood.CityId equals city.Id
            where !string.IsNullOrEmpty(neighborhood.Latitude) && (neighborhood.Id <= 31028 || attempt == 2) &&
            (attempt == 0 && !string.IsNullOrEmpty(location.city) ? (city.Name.Equals(location.city, StringComparison.InvariantCultureIgnoreCase)) : true)
        select new...).ToList();
    }

    просто linq, просто where;) От создателя xml-парсера (http://govnokod.ru/11870), обработки postback-запросов (http://govnokod.ru/10313), "обычного switch-а" (http://govnokod.ru/10448, http://govnokod.ru/10474), а еще конкатинации sql строк без параметров (но там слишком много, поэтому не выложу(:)

    mangyst, 13 Ноября 2012

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