1. Куча / Говнокод #2190

    +136.6

    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
    ...
     <td>
     <img src="/images/pix.gif" width="1" height="1"/> 
     </td>
     </tr>
    </table>
    <center>
     <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript" SRC="//smarticon.geotrust.com/si.js"><!--comment-->
     </SCRIPT>
    </center>
    <br/>
    </body>
    </html>

    Дефолная форма оплаты на сайте казкомерц банка :)

    amelien, 28 Ноября 2009

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

    −124.6

    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
    Function DosToKoi ( TextBlock )
    	FOR TXB = 1 TO LEN( TextBlock )
    		Select Case Asc( Mid( TextBlock, TXB, 1 ) )
    			Case 192 DosToKoi = DosToKoi & Chr(225)
    			Case 193 DosToKoi = DosToKoi & Chr(226)
    			Case 194 DosToKoi = DosToKoi & Chr(247)
    			Case 195 DosToKoi = DosToKoi & Chr(231)
    			Case 196 DosToKoi = DosToKoi & Chr(228)
    			Case 197 DosToKoi = DosToKoi & Chr(229)
    			Case 168 DosToKoi = DosToKoi & Chr(179)
    			Case 198 DosToKoi = DosToKoi & Chr(246)
    			Case 199 DosToKoi = DosToKoi & Chr(250)
    			Case 200 DosToKoi = DosToKoi & Chr(233)
    			Case 201 DosToKoi = DosToKoi & Chr(234)
    			Case 202 DosToKoi = DosToKoi & Chr(235)
    			Case 203 DosToKoi = DosToKoi & Chr(236)
    			Case 204 DosToKoi = DosToKoi & Chr(237)
    			Case 205 DosToKoi = DosToKoi & Chr(238)
    			Case 206 DosToKoi = DosToKoi & Chr(239)
    			Case 207 DosToKoi = DosToKoi & Chr(240)
    			Case 208 DosToKoi = DosToKoi & Chr(242)
    			Case 209 DosToKoi = DosToKoi & Chr(243)
    			Case 210 DosToKoi = DosToKoi & Chr(244)
    			Case 211 DosToKoi = DosToKoi & Chr(245)
    			Case 212 DosToKoi = DosToKoi & Chr(230)
    			Case 213 DosToKoi = DosToKoi & Chr(232)
    			Case 214 DosToKoi = DosToKoi & Chr(227)
    			Case 215 DosToKoi = DosToKoi & Chr(254)
    			Case 216 DosToKoi = DosToKoi & Chr(251)
    			Case 217 DosToKoi = DosToKoi & Chr(253)
    			Case 220 DosToKoi = DosToKoi & Chr(248)
    			Case 219 DosToKoi = DosToKoi & Chr(249)
    			Case 218 DosToKoi = DosToKoi & Chr(255)
    			Case 221 DosToKoi = DosToKoi & Chr(252)
    			Case 222 DosToKoi = DosToKoi & Chr(224)
    			Case 223 DosToKoi = DosToKoi & Chr(241)
    			Case 224 DosToKoi = DosToKoi & Chr(193)
    			Case 225 DosToKoi = DosToKoi & Chr(194)
    			Case 226 DosToKoi = DosToKoi & Chr(215)
    			Case 227 DosToKoi = DosToKoi & Chr(199)
    			Case 228 DosToKoi = DosToKoi & Chr(196)
    			Case 229 DosToKoi = DosToKoi & Chr(197)
    			Case 184 DosToKoi = DosToKoi & Chr(163)
    			Case 230 DosToKoi = DosToKoi & Chr(214)
    			Case 231 DosToKoi = DosToKoi & Chr(218)
    			Case 232 DosToKoi = DosToKoi & Chr(201)
    			Case 233 DosToKoi = DosToKoi & Chr(202)
    			Case 234 DosToKoi = DosToKoi & Chr(203)
    			Case 235 DosToKoi = DosToKoi & Chr(204)
    			Case 236 DosToKoi = DosToKoi & Chr(205)
    			Case 237 DosToKoi = DosToKoi & Chr(206)
    			Case 238 DosToKoi = DosToKoi & Chr(207)
    			Case 239 DosToKoi = DosToKoi & Chr(208)
    			Case 240 DosToKoi = DosToKoi & Chr(210)
    			Case 241 DosToKoi = DosToKoi & Chr(211)
    			Case 242 DosToKoi = DosToKoi & Chr(212)
    			Case 243 DosToKoi = DosToKoi & Chr(213)
    			Case 244 DosToKoi = DosToKoi & Chr(198)
    			Case 245 DosToKoi = DosToKoi & Chr(200)
    			Case 246 DosToKoi = DosToKoi & Chr(195)
    			Case 247 DosToKoi = DosToKoi & Chr(222)
    			Case 248 DosToKoi = DosToKoi & Chr(219)
    			Case 249 DosToKoi = DosToKoi & Chr(221)
    			Case 252 DosToKoi = DosToKoi & Chr(216)
    			Case 251 DosToKoi = DosToKoi & Chr(217)
    			Case 250 DosToKoi = DosToKoi & Chr(223)
    			Case 253 DosToKoi = DosToKoi & Chr(220)
    			Case 254 DosToKoi = DosToKoi & Chr(192)
    			Case 255 DosToKoi = DosToKoi & Chr(209)
    			Case Else DosToKoi = DosToKoi & Mid( TextBlock, TXB, 1 )
    		End Select
    	NEXT
    End Function

    mephist, 27 Ноября 2009

    Комментарии (5)
  3. Java / Говнокод #2188

    +81.4

    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
    /**
         * Метод определения валюты.
         * Черная магия и костыль.
         */
        private int getCurrencyId(int branch, int currency) {
            int result = 0;
            //branch_id in (4, 5, 11, 20, 26, 60, 61) - наши фирмы
            if (branch == 4 || branch == 5 || branch == 11 || branch == 20 ||
                branch == 26 || branch == 60 || branch == 61) {
                result = 1;
            } else {
                switch (currency) {
                    case 1: {//доллары
                        result = 2;
                        break;
                    }
                    case 2: {//йены
                        result = 3;
                        break;
                    }
                    case 3: {//евро
                        result = 4;
                        break;
                    }
                    case 4: {//рубли
                        result = 1;
                        break;
                    }
                }
            }
            return result;
        }

    zlob.jc, 27 Ноября 2009

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

    +155.6

    1. 1
    mpqw("INSERT INTO {$GLOBALS['conf']['db']['prefix']}chat_mess SET uid = (SELECT cu.id FROM {$GLOBALS['conf']['db'] 'prefix']}chat_user as cu WHERE cu.uid = {$GLOBALS['conf']['user']['uid']} AND cu.sess = '{$GLOBALS['conf']['user']['sess']}'), time = ".time().", mess = '".htmlspecialchars($_POST['mess'])."'");

    А еще там такие вот запросы
    разумеется в одну строчку и экранируется очень хорошо htmlspecialchars

    ivan.borzenkov, 27 Ноября 2009

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

    +155.9

    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
    echo mpct('include/install.php');
    
    //подключение модуля
    function mpct($file_name, $arg = array(), $virez = 1){
    	foreach(explode(':', $GLOBALS['conf']['fs']['path']) as $k=>$v)
    		if (file_exists($file = "$v/$file_name")) break;
    	if (!file_exists($file = "$v/$file_name")) return "<center>Ошибка доступа к файлу</center>";
    	$func_name = create_function('$arg', strtr(file_get_contents($file), $virez ? array('<? die;'=>'', '<?php die;'=>'', '?>'=>'') : array()));
    	ob_start();
    	$func_name($arg);
    	$content = ob_get_contents();
    	ob_end_clean();
    	return $content;
    }
    
    //файл модуля
    <?php die;
    
    .......
    
    ?>

    С того-же чуда, что и предыдущие два
    Подключение модулей

    ivan.borzenkov, 27 Ноября 2009

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

    +158

    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
    $GLOBALS['_utf8win1251'] = array(
    "\xD0\x90"=>"\xC0","\xD0\x91"=>"\xC1","\xD0\x92"=>"\xC2","\xD0\x93"=>"\xC3","\xD0\x94"=>"\xC4",
    ............
    "\xD1\x96"=>"\xB3","\xD1\x97"=>"\xBF","\xD1\x94"=>"\xBA","\xD1\x9E"=>"\xA2");
    $GLOBALS['_win1251utf8'] = array(
    "\xC0"=>"\xD0\x90","\xC1"=>"\xD0\x91","\xC2"=>"\xD0\x92","\xC3"=>"\xD0\x93","\xC4"=>"\xD0\x94",
    ............
    "\xB3"=>"\xD1\x96","\xBF"=>"\xD1\x97","\xBA"=>"\xD1\x94","\xA2"=>"\xD1\x9E");
    
    function utf8_win1251($a) {
    //    global $_utf8win1251;
        if (is_array($a)){
            foreach ($a as $k => $v) {
                if (is_array($v)) {
                    $a[$k] = utf8_win1251($v);
                } else {
                    $a[$k] = strtr($v, $GLOBALS['_utf8win1251']);
                }
            }
            return $a;
        } else {
            return strtr($a, $GLOBALS['_utf8win1251']);
        }
    }
    
    function win1251_utf8($a) {
    //    global $_win1251utf8;
        if (is_array($a)){
            foreach ($a as $k=>$v) {
                if (is_array($v)) {
                    $a[$k] = win1251_utf8($v);
                } else {
                    $a[$k] = strtr($v, $GLOBALS['_win1251utf8']);
                }
            }
            return $a;
        } else {
            return strtr($a, $GLOBALS['_win1251utf8']);
        }
    }

    а сколько всего...
    mb_convert_encoding и array_walk_recursive отменили...
    ну или хотя-бы от вложенных if избавиться можно

    ivan.borzenkov, 26 Ноября 2009

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

    +157.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if($conf['settings']['del_sess']){
    	$func = create_function('&$val, $key','$val = strtr(stripslashes($val), array("\\\\"=>"&#92;", \'"\'=>"&#34;", "\'"=>"&#39;"));');
    	array_walk ($get = $_GET, $func);
    	$post = $_POST;
    	if (isset($post['pass'])) $post['pass'] = 'hide';
    	if (isset($post['pass2'])) $post['pass2'] = 'hide';
    	array_walk ($post, $func);
    	array_walk ($files = $_FILES, $func);
    	array_walk ($server = $_SERVER, $func);
    	$request = serialize(array('$_POST'=>$post, '$_GET'=>$get, '$_FILES'=>$files, '$_SERVER'=>$server));
    }

    Вот так вот борются с magic_quotes

    ivan.borzenkov, 26 Ноября 2009

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

    +128.8

    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
    public static T Parse<T>(string txt)
            {
                if (string.IsNullOrEmpty(txt))
                    return default(T);
    
                txt = txt.Trim();
    
                Type[] typeArray = new Type[] {
                    typeof(string),
                    typeof(T).MakeByRefType()};
    
                MethodInfo mi = typeof(T).GetMethod("TryParse", typeArray);
    
                T value = default(T);
    
                if (mi != null)
                {
                    object[] prms = new object[]{
                    txt,
                    value};
    
                    if ((bool)mi.Invoke(null, prms) && prms[1] != null)
                        value = (T)prms[1];
                }
    
                return value;
            }

    Не скажу что это такой уж говнокод, но что то говнистое в нем есть =)

    sven47, 26 Ноября 2009

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

    +135.6

    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
    public class Singleton<T> where T : class
        {
            private static T _Instance = null;
            protected static readonly object locker = new object();
    
            public static T Instance
            {
                get
                {
                    if (_Instance == null)
                    {
                        lock (locker)
                        {
                            if (_Instance == null)
                            {
                                ConstructorInfo[] info = typeof(T).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic);
                                if (info.Length > 0)
                                    _Instance = (T)info[0].Invoke(null);
                            }
                        }
                    }
                    return _Instance;
                }
            }
    
            protected Singleton() { }
    
            static Singleton() { }
    
        }

    Вот такой вот универсальный сиглтон нашел в проекте

    sven47, 26 Ноября 2009

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

    +124.3

    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
    [ $(echo $a|cut -c$((${#a}-1))-) = "gz" ] && echo "Hello, world!"
    
    [ $(echo $a|sed "s/.*\(..\)/\1/") = "gz" ] && echo "Hello, world!"
    echo $a|sed -e"s/.*gz$/Hello, world\!/" -et -eD
    
    expr $a : .*gz >/dev/null && echo "Hello, world!"
    [ $(expr $a : '.*\(..\)') = "gz" ] && echo "Hello, world!"
    
    echo "ifelse(substr($a,eval(len($a)-2)),gz,\`Hello, world! ')"|m4
    
    case $a in *gz) echo "Hello, world!";; esac
    
    echo $a|emacs -batch -eval '(defun f (arg) "M") (if (string= (substring arg -2) "gz") (princ "Hello, world!\n")) )' -f f

    2168-му посвящается...

    Задача: Если последние два символа переменной "gz", то вывести "Hello, world!".
    Решение проблемы от поклонников разных инструментов. awk, perl и всякие tcl не писал, поскольку там не будет говнокода.
    11 строка, то, как обычно пишу я. ИЧСХ, все примеры, кроме последнего, строго соответствуют POSIX.2:)

    nil, 26 Ноября 2009

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