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

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

    +49

    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
    /* КОСТЫЛИ ВЫ МОИ КОСТЫЛИ... */
    function safesql( $source )
     {
    	return @mysql_real_escape_string ($source);
    }
    function get_row($query_id = '')
    {
    	if ($query_id == '') $query_id = $this->lastResult;
    	return mysql_fetch_assoc($query_id);
    }
    ///------------------------- Немного в другом месте ----------------------///
    if (!is_null(Registry::get('database')->fetchNextObject()) or $admin)
    {
    	Registry::get('database')->execFormatSafe("DELETE FROM `%scomment` WHERE `_id` = '%s'", $pref, $id, $message);
    }
    else
    	return $errmess = "что то не так";

    Стыдно. Второй кусок кода мой. Как же всё меняется. Меньше года прошло

    s1Paris, 01 Июня 2012

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

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for (int i = 0; i < wastePeriods.Length; i++)
        {
              wastePeriods = 0;
              docPeriods = 0;
              wastePeriodsYear = 0;
        }

    Диггеры-рефакторщики раскопали очередной оригинальный цикл.
    wastePeriods - массив с over300+ записями.
    docPeriods, wastePeriodsYear - тоже массивы

    UfoDriver, 22 Мая 2012

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

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    function all_sorting(
        $ids, //!< Массив ID элемента в карте сайта
        $_POST //!< Значения сортировки элементов
    ) {

    Определение локальной переменной с именем суперглобального массива вызывает ошибку "Fatal error: Cannot re-assign auto-global variable _POST in" в PHP 5.4

    Lblss, 22 Мая 2012

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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    <tr>
                     <td valign="top" align="center"> <?=($image = $gallery->setId($line['id'])->getImaget("s")) ? "<a href='news/$line[id]'><img src='$image[src]' alt='$line[name]' width='50' title='$line[name]' style='float: left; border: 0px; margin-right: 10px;'></a>" : ""?></td>
                     <td valign="top"><a href="<?=$line['link'];?>"><?=$line['name'];?></a><br /><?=$line['announce'];?></td>
                  </tr>

    Скопировал как нашел

    kindofbear, 12 Мая 2012

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

    −176

    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
    <html>
    <head>
    <script type="text/javascript">
    	var url = location.href;
    	var key = '<meta name="keywords" content="" />';
    	var dsc = '<meta name="description" content="Радиозавод – одно из ведущих предприятий, выпускающее hd ресиверы – цифровые, спутниковые, кабельные, приставки dvb с, а также инфракрасные сушки для овощей и фруктов, зерновые сеялки и светодиодные светильники для жкх. Кроме того мы предлагаем вниманию наших клиентов мобильную медицинскую технику: передвижной пункт забора крови, стоматологический кабинет и т.д." />';
    	url = url.replace('http://','');
    	url = url.replace('www.','')
    
    	if(url == "domen.ru") {
    	    dsc = '<meta name="description" content=""Радиозавод" осуществляет производство светодиодных светильников. Инфракрасная сушка одно из приоритетных направлений деятельности. Производители светодиодных светильников это группа компаний "Радиозавод"." />';
    	    key = '<meta name="keywords" content="производство светодиодных светильников, производители светодиодных светильников, инфракрасная сушка" />';
    	}
    	if(url == "domen.ru/catpv.5.htm") {
    	    dsc = '<meta name="description" content="передвижной стоматологический кабинет" />';
    	    key = '<meta name="keywords" content="Передвижной стоматологический кабинет от компании "Радиозавод" это универсальное решение для любых условий эксплуатации." />';
    	}
    	if(url == "domen.ru/catp.19.htm") {
    	    dsc = '<meta name="description" content=""Радиозавод" предлагает сеялку зерновую точного высева. Купить сеялку можно уже сейчас, доставляем в регионы." />';
    	    key = '<meta name="keywords" content="купить сеялку, сеялка зерновая, сеялка точного высева" />';
    	}
    	if(url == "domen.ru/catpv.103.htm") {
    	    dsc = '<meta name="description" content="Сеялка пневматическая универсальное решение для сельхозработ от компании "Радиозавод"" />';
    	    key = '<meta name="keywords" content="сеялка пневматическая" />';
    	}
    	
    	if(url == "domen.ru/catpv.104.htm") {
    	    dsc = '<meta name="description" content="Сеялка овощная как наверное оборудовение подойдет для  любых тракторов. Всегда в наличие овощная сеялка точного высева." />';
    	    key = '<meta name="keywords" content="овощная сеялка точного высева, сеялка овощная" />';
    	}
    	
    	if(url == "domen.ru/catpv.108.htm") {
    	    dsc = '<meta name="description" content=""Радиозавод" реализует светильники для теплиц в любом количестве. Светильник тепличный соответствует всем современным стандартам." />';
    	    key = '<meta name="keywords" content="светильники для теплиц, светильник тепличный" />';
    	}
    
    	/* ... тут еще куча такого же высера ... */
    
    	document.writeln(key);
    	document.writeln(dsc);
    </script>
    
    <title><TMPL_IF "header2"><TMPL_VAR "header2"><TMPL_ELSE><TMPL_VAR "start_header"><TMPL_IF "header"> - </TMPL_IF><TMPL_VAR "header"></TMPL_IF></title>

    Я даже вначале не знал в какую категорию это отнести.
    Сайт написан на Perl. Так как я не мастер в нем не буду выкладывать из него говнокод, вдруг он окажется мастер классом :)
    + Весело наблюдать закрытие тега meta в HTML.

    oooZinka, 10 Мая 2012

    Комментарии (14)
  7. Java / Говнокод #10175

    +66

    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
    package util;
    
    import play.db.jpa.JPA;
    import play.db.jpa.Model;
    import play.mvc.Http;
    import play.mvc.Router;
    import play.mvc.Scope;
    
    import javax.persistence.Query;
    import javax.persistence.EntityManager;
    import java.lang.reflect.Field;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * Page of results for model classes (because paginate module looks too buggy).
     * It is not generic solution but it fits the needs.
     * @author <a href="mailto:[email protected]">Roman Kashitsyn</a>
     */
    public class Page<M extends Model> implements PageBuilder<M> {
        
        public static final int MAX_PAGE_SIZE = 20;
        public static final int DEFAULT_PAGE_SIZE = 10;
        public static final int DEFAULT_PAGE_NUMBER = 1;
    
        public static final String PAGE_NUMBER_PARAM = "page";
        public static final String PAGE_SIZE_PARAM = "psize";
        public static final String ORDER_PARAM = "order";
        public static final String ORDER_BY_PARAM = "orderBy";
        
        private static final String ASC = "asc";
        private static final String DESC = "desc";
        private static final List<String> ALLOWED_ORDERS = Arrays.asList(ASC, DESC);
    
        private int pageSize = DEFAULT_PAGE_SIZE;
        private int pageNumber = DEFAULT_PAGE_NUMBER;
        private int total;
        private String orderBy;
        private String order;
        private final Http.Request request;
        private final Map<String, Object> params;
        private List<M> results;
        private final Class<M> clazz;
    
        public class SizeSwitcher {
            private final Map<String, Object> params;
    
            private SizeSwitcher() {
                // making defensive copy
                params = new HashMap<String, Object>(Page.this.params);
                // list of different size should always begin with 1 page
                params.put(PAGE_NUMBER_PARAM, 1);
            }
    
            public String urlToSwitchSize(int newSize) {
                params.put(PAGE_SIZE_PARAM, newSize);
                return Router.reverse(Page.this.request.action, params).url;
            }
    
            public int currentSize() {
                return Page.this.pageSize;
            }
        }
    
        private Page(Class<M> clazz) {
            this.clazz = clazz;
            request = Http.Request.current();
            params = new HashMap<String, Object>(Scope.Params.current().allSimple());
        }
        
        public static <M extends Model> PageBuilder<M> of(Class<M> modelClass) {
            return new Page<M>(modelClass);
        }
        
        public PageBuilder<M> withParams(Map<?, ?> params) {
            pageNumber = limit(params.get(PAGE_NUMBER_PARAM), pageNumber, Integer.MAX_VALUE);
            pageSize = limit(params.get(PAGE_SIZE_PARAM), pageSize, MAX_PAGE_SIZE);
            Object orderByParam = params.get(ORDER_BY_PARAM);
            if (orderByParam != null) {
                orderBy(getSingleValue(orderByParam).toString());
            }
            Object orderParam = params.get(ORDER_PARAM);
            if (orderParam != null) {
                String proposedValue = getSingleValue(orderParam).toString();
                if (ALLOWED_ORDERS.contains(proposedValue)) {
                    order = getSingleValue(orderParam).toString();
                }
            }
            return this;
        }
    
        public PageBuilder<M> withNumber(int num) {
            this.pageNumber = num;
            return this;
        }

    Govnisti_Diavol, 03 Мая 2012

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

    +88

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if ( ($cache = isset($this->cache[0]) ? $this->cache[0] : null) != null ) {
            $isNeedCache = $cache->isNeedCache($plug);
        }
        
        if ( !$isNeedCache || !$cache->getPlugCache($plug, $plugInfo) ) {
          
          /** processing: running plug */
          $this->dispatcher->processPlug($request, $response);
          
          if ($isNeedCache)
            $cache->setPlugCache($plug, $plugInfo);
        }

    hwtech, 02 Мая 2012

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

    +79

    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
    function exeSQL($inSQL,$withDebug = true,$iniDb = '') {
    	global $db;
    	
    	$tmp_db = $db;
    	if ($iniDb != '') {
    		$tmp_db = $iniDb;
    	}
    
    	if (isset($_SESSION['HIDDEN']) and is_numeric($_SESSION['HIDDEN']['HIDDEN']) and $_GET['HIDDEN'] == 'YES') {
    		echo "
    		<br>---------------------------------------------------------------------
    		BEG_TIME: " . date('h:i:s A');
    				print "<pre>";
    				print_r($inSQL);
    		echo "<br>END_TIME: " . date('h:i:s A') . "<br>
    		------------------------------------------------------------------------";		
    	}
    	
    	$result = mysql_query($inSQL, $tmp_db);
    
        $error = mysql_error($tmp_db);
        
        if ($error) {
        	if (strpos($inSQL, 'USD-CODED_RECORD:V') !== false) {
        		$strSQL = util::decodeRecord($inSQL);
        		exeSQL($strSQL, $withDebug);
        		return ;
        	}
        	if ($withDebug) {    
    	   	//	if (!is_dir("d:/temp") and $_GET['debug2'] != 'Y') {
    		 //   	echo file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/index.html');
    		//		die(); 		
    	   	//	}
        			
    	    	echo $error;
    			print "<pre>";
    			print ($inSQL);
    	    	die();    	
        	}
        }
        
        // -- CHECK IF IT WAS INSERTION ---
        
        // -- TRY TO RETURN DATASET
         $arr = @mysql_fetch_array($result);
        // -- NO RESULT AT ALL
        if (is_array($arr)) {
        
    	    // -- RETURN AS VARCHAR ----
    	    if (count($arr) <= 2) return $arr[0];
    	    
    	    // FORM RESULT ARRAY TO RETURN TO USER
    	    $res = array();
    	    while ($arr) {
    	    	$res[] = $arr;
    	    	$arr = mysql_fetch_array($result);
    	    }
    	           
    	    return $res;
        } else {
        	return '';
        	$id = mysql_insert_id($tmp_db);
    		if ($id > 0) {
    		  	return $id;
    		}    	
        }
        
        return '';
    }

    Работа с СУБД.

    nethak, 28 Апреля 2012

    Комментарии (14)
  10. Pascal / Говнокод #10066

    +107

    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
    function Ns(ds: char; var vs: byte): boolean;
    begin
       case ds of
    'Q': vs:= 81;
    'W': vs:= 87;
    'E': vs:= 69;
    'R': vs:= 82;
    'T': vs:= 84;
    'Y': vs:= 89;
    'U': vs:= 85;
    'I': vs:= 73;
    'O': vs:= 79;
    'P': vs:= 80;
    'A': vs:= 65;
    'S': vs:= 83;
    'D': vs:= 68;
    'F': vs:= 70;
    'G': vs:= 71;
    'H': vs:= 72;
    'J': vs:= 74;
    'K': vs:= 75;
    'L': vs:= 76;
    'Z': vs:= 90;
    'X': vs:= 88;
    'C': vs:= 67;
    'V': vs:= 86;
    'B': vs:= 66;
    'N': vs:= 78;
    'M': vs:= 77;
    else vs:= 0;
      end;
     if vs = 0 then Result:= false else Result:= true;
     end;

    Определение кода виртуальных клавиш, вот что бывает, когда кто-то не знает матчасть, вся эта белиберда легко заменяется на :

    function Ns(ds: char; var vs: byte): boolean;
    begin
    case ds of
    'A'..'Z': vs:= byte(ds);
    else vs:= 0;
    end;
    if vs = 0 then Result:= false else Result:= true;
    end;

    И не лень же было клаву мучить!

    Alegun, 27 Апреля 2012

    Комментарии (14)
  11. VisualBasic / Говнокод #10045

    −92

    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
    Sub Ìàêðîñ1()
      Sheets("Îò÷åò_Âêë.1_15-98").Select
        For i = 0 To 25 Step 1
            Sheets(Sheets.Count).Select
            If i = 0 Then
                Range("A:A, B:B").Select
            ElseIf i = 1 Then
                Range("A:A, C:C").Select
            ElseIf i = 2 Then
                Range("A:A, D:D").Select
            ElseIf i = 3 Then
                Range("A:A, E:E").Select
            ElseIf i = 4 Then
                Range("A:A, F:F").Select
            ElseIf i = 5 Then
                Range("A:A, G:G").Select
            ElseIf i = 6 Then
                Range("A:A, H:H").Select
            ElseIf i = 7 Then
                Range("A:A, I:I").Select
            ElseIf i = 8 Then
                Range("A:A, J:J").Select
            ElseIf i = 9 Then
                Range("A:A, K:K").Select
            ElseIf i = 10 Then
                Range("A:A, L:L").Select
            ElseIf i = 11 Then
                Range("A:A, M:M").Select
            ElseIf i = 12 Then
                Range("A:A, N:N").Select
            ElseIf i = 13 Then
                Range("A:A, O:O").Select
            ElseIf i = 14 Then
                Range("A:A, P:P").Select
            ElseIf i = 15 Then
                Range("A:A, Q:Q").Select
            ElseIf i = 16 Then
                Range("A:A, R:R").Select
            ElseIf i = 17 Then
                Range("A:A, S:S").Select
            ElseIf i = 18 Then
                Range("A:A, T:T").Select
            ElseIf i = 19 Then
                Range("A:A, U:U").Select
            ElseIf i = 20 Then
                Range("A:A, V:V").Select
            ElseIf i = 21 Then
                Range("A:A, W:W").Select
            ElseIf i = 22 Then
                Range("A:A, X:X").Select
            ElseIf i = 23 Then
                Range("A:A, Y:Y").Select
            ElseIf i = 24 Then
                Range("A:A, Z:Z").Select
            ElseIf i = 25 Then
                Range("A:A, AA:AA").Select
            End If
            Selection.Copy
            Sheets.Add
            Sheets(Sheets.Count - 1).Select
            Columns("A:A").Select
            ActiveSheet.Paste
        Next i
    End Sub

    Макрос для копирования подряд расположенных столбцов на отдельные листы

    usstass, 25 Апреля 2012

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