1. Pascal / Говнокод #2882

    +91.2

    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
    {  Длинная арифметика. 
        [0] - длина числа
        [1..1000] - цифры в системе с основанием 10000, записанные в обратном порядке
    }
    type TLong = array[0..1000] of integer;
    
    procedure Add(A,B:TLong;var C:TLong);
    {Здесь идет процедура сложения в столбик - ничего интересного}
    procedure MulByShort(A:TLong;B:integer;var C:TLong); {умножение длинного на короткое}
        var i:integer;
    begin
        initByZero(C);{инициализация C нулями}
        for i:=1 to B do Add(C,A,C);
    end;

    Найдено в решении олимпиадной задачи на FreePascal. Обратите внимание на особо остроумный алгоритм умножения: надо же до такого додуматься. Также интересно, чем мотивирована передача массивов по значению.

    frp, 28 Марта 2010

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

    +170.2

    1. 1
    2. 2
    3. 3
    ...
    <title><?php echo iconv('utf-8', 'windows-1251', 'Какой-то текст'); ?>
    ...

    и такие извращения для каждого куска текста в шаблоне
    вот такой вот оригинальный способ перевести шаблон в utf-8
    подозреваю, что человеку очень мешали BOM, от которых он не мог избавится, других причин не вижу

    develx0, 28 Марта 2010

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

    +116.2

    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
    SendMessage("PRIVMSG " + channel + " :Name: " + ObjectManager.Me.Name + " Health: " + ObjectManager.Me.CurrentHealth + "/" + ObjectManager.Me.MaxHealth + " Mana: " + ObjectManager.Me.CurrentMana + "/" + ObjectManager.Me.MaxMana + " Level: " + ObjectManager.Me.Level + " Race: " + ObjectManager.Me.Race + " Class: " + ObjectManager.Me.Class + " Xp to LeveL: " + ObjectManager.Me.XP + "/" + ObjectManager.Me.NextLevelXP + " Combat: " + ObjectManager.Me.Combat + " Time to level: " + hours + " Hours " + minutes + " Minutes");                   
    
    /* немного дальше */
                        if (CommandUsed("!zone", messageLine))
                        {
                            SendMessage("PRIVMSG " + channel + " :Zone: " +ObjectManager.Me.RealZoneText);
                            SendMessage("PRIVMSG " + channel + " :SubZone: "+ ObjectManager.Me.SubZoneText);
                        }
                        if (CommandUsed("!free", messageLine))
                        {
                            SendMessage("PRIVMSG " + channel + " : i have "+ Global.FreeSlots + " free slots");
                        }
    /* и тд */
                        if (CommandUsed("!guild", messageLine))
                        {
                            if (accCheck.CanUseCommand(loginCheckLine))
                            {
                                SendGuild(messageLine);
                            }
                        }

    вот как надо шпарить ботов для irc
    http://pastebin.org/126516

    xXx_totalwar, 28 Марта 2010

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

    +167

    1. 1
    2. 2
    $is_alias=substr($_SERVER[SCRIPT_FILENAME],-strlen($_SERVER[SCRIPT_NAME])) != $_SERVER[SCRIPT_NAME] ? true : false;
    define('HOSTROOT',($is_alias ? $root_dir : realpath(substr($_SERVER[SCRIPT_FILENAME],0,-strlen($_SERVER[SCRIPT_NAME])))));

    Определяем путь до папки со скриптом. (c) RapidGet

    dmOx, 28 Марта 2010

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

    +164.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function setStyle (id, style, val) {
    if (document.getElementById(id).getAttribute('style').indexOf(style) != -1) {
    document.getElementById(id).setAttribute('style', document.getElementById(id).getAttribute('style').replace(style, val))} else {
    document.getElementById(id).setAttribute('style', document.getElementById(id).getAttribute('style') + style + ':' + val + ';')
    }
    }

    Функция для установки CSS-свойств от китайских умельцев.

    eval, 27 Марта 2010

    Комментарии (1)
  6. SQL / Говнокод #2877

    −151.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
    CREATE TABLE IF NOT EXISTS `upmenu_block` (
      `id_foto_b` int(5) NOT NULL auto_increment,
      `id_sec` int(5) NOT NULL,
      `f_b1` varchar(100) NOT NULL,
      `f_b2` varchar(100) NOT NULL,
      `f_b3` varchar(100) NOT NULL,
      `f_b4` varchar(100) NOT NULL,
      `f_o1` varchar(200) NOT NULL,
      `f_o2` varchar(200) NOT NULL,
      `f_o3` varchar(200) NOT NULL,
      `f_o4` varchar(200) NOT NULL
      PRIMARY KEY  (`id_foto_b`)
    )

    В зависимости от таба (1-4), в котором будет показана фотка, ее название и имя файла записываются в поля f_bN, f_oN.

    deraider, 27 Марта 2010

    Комментарии (0)
  7. JavaScript / Говнокод #2876

    +156.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
    function getElementsByClass(searchClass,node,tag) {
    	var classElements = new Array();
    	if ( node == null )
    		node = document;
    	if ( tag == null )
    		tag = '*';
    	var els = node.getElementsByTagName(tag);
    	var elsLen = els.length;
    	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    	for (i = 0, j = 0; i < elsLen; i++) {
    		if ( pattern.test(els[i].className) ) {
    			classElements[j] = els[i];
    			j++;
    		}
    	}
    	return classElements;
    }
    
    function show_im_gal (id)
    {
    .............
    	$("#tabs"+id+" img").css({opacity:1});
    	tab = getElementsByClass ('tabNavigation',null,null);
    .............
    }

    Судя по строке 22, автор знает, что проект использует jQuery. Но дальше юзает додревний getElementsByClass, выкопанный на лучших складах говноскриптов 1990-х!

    deraider, 27 Марта 2010

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

    +162.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
    while( $db->next_record() ) {
    				$parent_id = $db->f( "product_parent_id" ) ;
    				if( ($db->f( "product_id" ) != $curr_product) && @$child_id ) {
    					continue ;
    				}
    				// Start row for this child
    				$q = "SELECT product_id, attribute_name FROM #__{vm}_product_attribute_sku " ;
    				$q .= "WHERE product_id='" . $db->f( "product_parent_id" ) . "' ORDER BY attribute_list ASC" ;
    				$db_sku->query( $q ) ;
    				$attrib_value = array( ) ;
    				
    				while( $db_sku->next_record() ) {
    					$q = "SELECT attribute_name,attribute_value " ;
    					$q .= "FROM #__{vm}_product_attribute WHERE " ;
    					$q .= "product_id='" . $db->f( "product_id" ) . "' AND " ;
    					$q .= "attribute_name='" . $db_sku->f( "attribute_name" ) . "'" ;
    					$db_item->setQuery( $q ) ;
    					$db_item->query() ;
    					while( $db_item->next_record() ) {
    						if( $ci == 0 ) {
    							$attrib_heading[] = $db_item->f( "attribute_name" ) ;
    							$tpl->set( 'headings', $attrib_heading ) ;
    						}
    						$attrib_value[] = $db_item->f( "attribute_value" ) ;
    					}
    				}

    Не знаю выкладывал ли кто, но захотелось покрыть все матом :(((

    Джумла + вирт. март.
    Выше этого лежит ещё два цикла. С помощью данного участка кода и выше, который я опустил ибо в него долго въезжать, т.к. слишком много букофф - разгоняет нагрузку на бд до 800 запрос ради вывода десяти товаров.

    matrix, 27 Марта 2010

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

    +160.2

    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
    function createCategory(){
    	global $_POST,$_SESSION;
    	$result = mysql_query(sprintf("INSERT INTO `categories` (`id` ,`name` ,`description`)
    									VALUES (NULL , %s, %s);",
    	$this->prepare($_POST['name']), $this->prepare($_POST['description'])));
    	
    	return $result?true:false;
    }
    function prepare($data,$type = 'other'){
    		if($type == 'other'){
    		if(is_numeric($data) or is_float($data)){
    			return "'".$data."'";
    		}else if(is_string($data)){
    			return "'".mysql_real_escape_string($data)."'";
    		}
    		}else if($type == 'pswd'){
    			return "'".sha1($data.SECRET_WORD)."'";
    		}
    	}

    Насколько это защищено от sql injection?

    DanxilLs, 26 Марта 2010

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

    +97.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
    if (aDebtor.Banknummer = '') then
        begin
            s := s + ',""'; {Banknummer}
        end
        else
        begin
            s := s + ',"'+TrimRight(Format('%-.10s',[aDebtor.Banknummer]))+'"'; {Banknummer}
        end;
        if (aDebtor.Gironummer = '') then
        begin
            s := s + ',""'; {postbankrekening}
        end
        else
        begin
            s := s + ',"'+TrimRight(Format('%-.10s',[aDebtor.Gironummer]))+'"'; {postbankrekening}
        end;

    Гениально... А можно мне такой же травы как у этих голландцев?

    И такое повторяется еще много раз.

    Drone, 26 Марта 2010

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