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

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

    −121

    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
    declare
        v_curs sys_refcursor;
        v_on number;
    begin
        open v_curs for 'select rout_num from rout_orders_promotion';
        fetch v_curs into v_on;
        loop
            exit when v_curs%notfound;
            if v_curs%rowcount = 1 then
                null;
            end if;
            fetch v_curs into v_on;
        end loop;
        close v_curs;
    end;

    Если запись одна, тогда уж точно нечего в цикле делать.

    dwinner, 14 Июня 2011

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

    +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
    if (isSet($_POST["AdminLoginPOST"]) and isSet($_POST["AdminPasswordPOST"])){
    	$sql="SELECT * FROM settings WHERE AdminLogin like binary '".str_replace("'","",$_POST["AdminLoginPOST"])."' and AdminPassword='".str_replace("'","",$_POST["AdminPasswordPOST"])."'";
    	$db->query($sql);
    	if ($db->next_record()) {
    		if(isset($_POST["AdminCurrentSession"])) $_SESSION=unserialize($_POST["AdminCurrentSession"]);
    		$AdminLogin=$_POST["AdminLoginPOST"];
    		$_SESSION['AdminLogin']=$db->Record["AdminLogin"];
    		$ADMIN_ID=$db->Record["id"];
    		$ADMIN_EMAIL=$db->Record["AdminEmail"];
    		$ACCESS=$db->Record["access"];
    		if($ACCESS<0 && !isset($MAINFRAME))  $ACCESS=0;
    		$LENGUAGE=$db->Record["lenguage"];
    		$NOHELP=$db->Record["nohelp"];
    		$ADMINOPNWIN=$db->Record["AdminOpnWin"];
    		$COUNT_ROWS=$db->Record["NumRows"];
    		$STRIPTAGS=$db->Record["striptags"];
    		$SPELL=$db->Record["spell"];
    		$sp=explode(",", $db->Record["access_details"]);
    		$ACCESS_DETAILS=array();
    		for ($i=0;$i<count($sp);$i++) $ACCESS_DETAILS[$sp[$i]]="y";
    	}
    }

    volatile, 08 Июня 2011

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

    +147

    1. 1
    $APPLICATION->SetTitle('Хуй на рыло, чтоб душа не ныла');

    код скриптов админ-панели, взято с продакшена

    elw00d, 08 Июня 2011

    Комментарии (4)
  5. Pascal / Говнокод #6818

    +111

    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
    function str_transfer(str: string; c: Integer): String;
    var
    i:Integer;
    begin
      i:= c;
      while PosEx(' ',str,i) > 0 do
        begin
          if PosEx(' ',str,i) > 0 then
            begin
              i:= PosEx(' ',str,i);
              Insert(#10#13,str,i+1);
              i:= i+c;
            end;
        end;
      Result:= str;
    end;

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

    bugmenot, 02 Июня 2011

    Комментарии (4)
  6. Java / Говнокод #6806

    +76

    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
    private void listGSNames()
    	{
    		int idMaxLen = 0;
    		int nameMaxLen = 0;
    		for (Entry<Integer, String> e : GameServerTable.getInstance().getServerNames().entrySet())
    		{
    			if (e.getKey().toString().length() > idMaxLen)
    			{
    				idMaxLen = e.getKey().toString().length();
    			}
    			if (e.getValue().length() > nameMaxLen)
    			{
    				nameMaxLen = e.getValue().length();
    			}
    		}
    /* Some Code */
    }

    Отрезок из регистратора игрового сервера Lineage от команды L2jServer.
    e.getKey().toString().length() - Приведение к строке, потом определение строки. Выглядит зрелищно! =)

    Akira, 01 Июня 2011

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

    +77

    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
    ArrayList<BaseEventData> tempList = new ArrayList<BaseEventData>();
    			
    			int to = baseList.size()-1;
    
    			while((to > 0) && (baseList.get(to).getTime() > timeTo))
    				to--;
    			
    			int from = to;
    			
    			while((from > 0) && (baseList.get(from).getTime() >= timeFrom)){
    				tempList.add(baseList.get(from));
    				from--;
    			}
    			
    			mEvents = tempList.toArray(new BaseEventData[]{});

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

    kartanis, 31 Мая 2011

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

    +156

    1. 1
    $value['VALUE'] = htmlspecialchars(str_replace(array("<",">"), "\"", $value['VALUE']));

    Безопасность на высоте. То, что потом приходят совершенно нечитаемые данные -- это ничего.

    ftr, 26 Мая 2011

    Комментарии (4)
  9. Java / Говнокод #6655

    +147

    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
    // ...
    if ((dot1 > 0) || ((dot1 == 0) && (se.GetDir() == pe.GetDir()))) {
            rcount++;
          } else if ((dot1 < 0) || ((dot1 == 0) && (se.GetDir() == -pe.GetDir()))) {
            lcount++;
          } else {
            this.dbg("grade_partition problem: dot1 = " + dot1 + ", dot2 = " + dot2);
          }
    // ...
    
    // где GetDir определена так:
    int GetDir() {
      if (this.dx != 0) {
        return (this.dx < 0) ? 1 : -1;
      }
      return (this.dy < 0) ? 2 : -2;
    }

    вот мусор встретился.
    Pattern id: NOISE_OPERATION, type: NOISE, category: NOISE

    Lure Of Chaos, 14 Мая 2011

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

    +120

    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
    private string GetConnectionString() 
        { 
          string connString = String.Empty; 
          string location = Assembly.GetExecutingAssembly().Location; 
          int pos = location.LastIndexOf('\\'); 
          location = location.Remove(pos); 
          pos = location.LastIndexOf('\\'); 
          location = location.Remove(pos); 
          pos = location.LastIndexOf('\\'); 
          location = location.Remove(pos); 
          location += @"\server\conf\config.conf"; 
          using (StreamReader sr = File.OpenText(location)) 
          { 
            string s = ""; 
            while ((s = sr.ReadLine()) != null) 
            { 
              connString += s; 
            } 
          } 
          connString += "database = ***; charset = utf8;"; 
          return connString; 
        }

    mahalex, 11 Мая 2011

    Комментарии (4)
  11. ActionScript / Говнокод #6615

    −104

    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
    protected function dragDropHandler(event:DragEvent):void
        {
            // Куча всего разного...
    
            // Scroll the caret index in view
            if (caretIndex != -1)
            {
                // Sometimes we may need to scroll several times as for virtual layouts
                // this is not guaranteed to bring in the element in view the first try
                // as some items in between may not be loaded yet and their size is only
                // estimated.
                var delta:Point;
                var loopCount:int = 0;
                // А зачем мучатся, проверять видно выделеный элемент списка или нет, 
                // с десяти раз ведь верняк заработает!
                while (loopCount++ < 10)
                {
                    validateNow();
                    delta = layout.getScrollPositionDeltaToElement(dropIndex + caretIndex);
                    if (!delta || (delta.x == 0 && delta.y == 0))
                        break;
                    layout.horizontalScrollPosition += delta.x;
                    layout.verticalScrollPosition += delta.y;
                }
            }
        }

    Flex Framework продолжает радовать. Так авторы этого творения пытаются скролить список (spark.components.List), чтобы показать выделенный элемент.

    wvxvw, 10 Мая 2011

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