1. 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)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. Куча / Говнокод #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)
  7. Pascal / Говнокод #2180

    +115.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
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    function TFilesStrings.LastSlash(FileString: string): byte;
    {*
      Функция для вычисления положения последнего слеша в строке
    *}
    var
      i: byte;
    begin
      Result := 0;
      for i := 1 to Length(FileString) do
        if (FileString[i] = #92) then Result := i;
    end;
    {==============================================================================}
    
    
    {******************************************************************************}
    function TFilesStrings.GetPath(FullFileName: string): string;
    {*
      Функция возвращает оконечный путь у заданному Файлу
    *}
    var
      SlNum: byte;
    begin
      Result := '';
      SlN um := LastSlash(FullFileName);
    
      Result := Copy(FullFileName, 1, SlNum);
    end;

    Вот ещё вспомнил... Не мог понять почему у меня не работает функция ExtractFilePath, пришлось писать вручную :)

    S@nderS, 25 Ноября 2009

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

    +92.4

    1. 1
    2. 2
    if (a<0) or (a=0) 
    then ...

    Почему в универститах вместо того, чтобы ставить автоматы за такие вещи, не оценивают оптимизацию кода?

    Теперь понятно почему когда берёшь чьи-нибудь сорцы, пытаешься час понять логику в 10 строчек.

    S@nderS, 25 Ноября 2009

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

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if(strstr($username, '**')) {
    
    $admin = 1;
    $username = str_replace('**', '', $username);
    $_SESSION['admin'] = 1;
    
    } else {
    
    $admin = 0;
    
    }

    Вот нашел случайно... Судя по всему этот кусок в каком-то коммерческом проекте
    "Actually, it turns out there’s an even simpler way, and that Adam P’s predecessor discovered and implemented it for their client’s fairly large ecommerce website."

    furang, 25 Ноября 2009

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

    +156.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #topBlock
    <script language="JavaScript">
    function process(){}
    today = new Date()
    if((today.getHours() < 12) && (today.getHours() >= 6)) {background:url('http://site/1.png') top center no-repeat;height:243px;}
    if((today.getHours() >= 12) && (today.getHours() < 18)) {background:url('http://site/2.png') top center no-repeat;height:243px;}
    if((today.getHours() >= 18) && (today.getHours() <= 23)) {background:url('http://site/3.png') top center no-repeat;height:243px;}
    if((today.getHours() >= 0) && (today.getHours() < 6)) {background:url('http://site/4.png') top center no-repeat;height:243px;}
    </script>
    #tobTable.... ну и дальше неважно

    Отчаянная попытка сделать логотип, сменяющий цвет в зависимости от времени суток =) Как выяснилос, поциент вставлял это в CSS. http://helper.ucoz.ru/forum/20-6633

    fuckyounoob, 25 Ноября 2009

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