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

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public function beforeDelete($event=null)
    	{
                   foreach($this->outers as $outer)
    			$outer->delete();
    			
    		Subscribe::model()->deleteAllByAttributes(array('user_id'=>$this->user_id));
    
    		return self::beforeDelete($event);
    	}

    Сука неделю ошибку искал

    Curly, 14 Марта 2012

    Комментарии (9)
  3. Python / Говнокод #9666

    −96

    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
    x = str(x)                                            # x == '987.654'
    dot = x.find('.')                                  # dot == 3
    whole = x[:dot]                                 # whole == '987'
    nums = '0123456789'                     # 
    tenths = x[(dot + 1):(dot + 2)]         # tenths == '6'
    max_digits = 6                                  # Directions say x is not > 100,000
    filler = max_digits - dot                   # filler == 3 (dot is equal to the number of digits in whole)
    big_num = ('0' * filler) + whole       # big_num == '000987'
    
    e5 = (nums.find(big_num[0:1])) * 100000   # e5 == 0
    e4 = (nums.find(big_num[1:2])) * 10000     # e4 == 0
    e3 = (nums.find(big_num[2:3])) * 1000       # e3 == 0
    e2 = (nums.find(big_num[3:4])) * 100         # e2 == 900
    e1 = (nums.find(big_num[4:5])) * 10           # e1 == 80
    e0 = (nums.find(big_num[5:6]))                   # e0 == 7
    
    the_decider = '9'.find(tenths) + '8'.find(tenths) + '7'.find(tenths) + '6'.find(tenths) + '5'.find(tenths) + 5
    
    rounded = (e5 + e4 + e3 + e2 + e1 + e0) + the_decider
    print rounded

    Эта, кхм, программа предназначается для округления положительных натуральных чисел величиной до 100000.

    aibo, 13 Марта 2012

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

    +73

    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
    public Show extractDefault(Extract request) {
            CriteriaBuilder criteriaBuilder = converter.convertToDO(request);
            List<EntityDO> list = dao.extract(criteriaBuilder, 0, Byte.MAX_VALUE);
            if (list.size() != 8) {
                if (list.size() != 0) {
                    throw new AssertionError(list.size());
                }
                criteriaBuilder = createCriteriaBuilder();
                list = dao.extract(criteriaBuilder, 0, 100);
            }
            if (list.size() != 8) {
                throw new IllegalStateException("Entity not found");
            }
            return converter.convertToSystem(list);
        }

    Решил запостить код, который дергает сущность из базы как явный говнокод, но после повторного просмотра уже и не кажется таким уж ужасным. Разве что в extract передаются разные значения pagesize(3-ий аргумент) и list.size() сравнивается не понятно. А что скажет общественность?

    jericho, 13 Марта 2012

    Комментарии (9)
  5. ActionScript / Говнокод #9640

    −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
    var A:Boolean=false; // запускаем первый уровень
    var B:Number=0; // счотчик ударов
    var V:Boolean=true; // вызов меню
    //------------------------------------
    var STG1:stg1=new stg1();
    var KV:kvadrat=new kvadrat();
    var ST:stena=new stena();
    var VR:vorota=new vorota();
    //-----------------------------------
    var ME:menu=new menu;
    var KN1:knopko1=new knopko1(); // первый уровень
    var KN2:knopko2=new knopko2(); // не зделанно
    var KN3:knopko3=new knopko3(); // не зделанно

    kyzi007, 10 Марта 2012

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

    +152

    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
    <?php 
         // сначала получим строку с сервера с параметрами о клиенте 
    $user_agent = $_SERVER["HTTP_USER_AGENT"]; 
         // применим функцию, о этой функции здесь 
    $user_arr = detect_browser ($user_agent); 
         // $BName - это имя броузера (Explore) 
    $BName = $user_arr[0]; 
         // $BVersion - его модификация (6.0) 
    $BVersion = $user_arr[1]; 
         // $BPlatform - операционная система пользователя (Windows 98) 
    $BPlatform = $user_arr[2]; 
         // $Brobot - имя робота, если это робот. (Rambler) 
    $Brobot = $user_arr[3]; 
         // если зашёл робот - тормозим его 
     if ($BName == 'Robot'){ sleep (10);} 
         // следующую ссылку робот не увидит 
     if ($BName != "Robot") {echo"ссылка, которая роботу не видна";} 
    
         // если нет строки указывающий броузер, значит пришёл робот
    if ( $_SERVER["HTTP_USER_AGENT"] == '' ) {  
    print "Ваш броузер не определён, выключите сетевой экран, если это невозможно, то отправьте нам Ваш Ip адрес, для внесения в     базу, допущенных Ip."; 
    $BName = 'Robot'; 
    }
    
         // если нет некоторых заголовков, которые делают обычные
         // броузеры, значит пришёл робот
     if (
         $_SERVER['HTTP_ACCEPT']=='' or
         $_SERVER['HTTP_ACCEPT_ENCODING']=='' or
         $_SERVER['HTTP_ACCEPT_LANGUAGE']=='' or
         $_SERVER['HTTP_CONNECTION']==''
         ){ $BName = 'Robot';  }
    
         // если пользователь скачал более 300 страничек нашего сайта
         // и наша программа говорит , что это броузер
         // останавливаем программу
     if ( $hits> 300 and $BName != 'Robot' ){  $BName = 'Robot bad';    exit ; }
    
         // функция считывает файл и 
         // составляет регулярное выражение
     function base_for_search ($path){ 
         $path =  str_replace ("\r","",  trim (  implode ("", @file ($path))));
         return "~(" .  str_replace ("\n","|",  preg_quote ($path,"~")) . ")~i"; 
         }
         // строка, которую будем искать 
         // в $_SERVER["HTTP_USER_AGENT"]
    $search = base_for_search ($base_robot);
         // если нашли, значит хороший робот,
         // то даём скачивать хоть сколько страниц
     if (  preg_match ( $search, $path, $arr_r ) ) { 
         print "разрешённые поисковики";
         }
         // если не нашли, значит бэд поисковик, 
         // даём скачать только 50 страниц
     elseif ($hits> 50){ $BName = 'Robot bad'; exit ; } 
    ?>

    Определение поискового робота. Скрипт взят с сайта: http://omsk777.ru/robotbad.html

    good_web_master, 04 Марта 2012

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

    +129

    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
    <script src="file:///C:/Documents%20and%20Settings/Admin/Local%20Settings/Temp/Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
    <meta name='yandex-verification' content='6e63f46d5d2bd9a6' />
    ...
    <body text="BLACK">
    ...
    <div id="Layer7" style="position:absolute; left:1px; top:102px; width:504px; height:32px; z-index:8; visibility: visible;">
      <script menumaker>document.write('<scr'+'ipt src="menu/xaramenu.js">'+'</scr'+'ipt>');document.write('<scr'+'ipt src="menu/menu_.js">'+'</scr'+'ipt>');/*img src="menu.png" moduleid="ruschoolcz2 (Project)\menu_off.xws"*/</script>
    </div>
    ...
    <tr>
          <td><div align="center" class="style5 стиль56">Добро пожаловать на официальный сайт средней школы <br>
      с углубленным изучением иностранного языка <br>
    
      при Посольстве России в Чехии</div></td>
        </tr>
    ...
    <table width="100%"  border="0">
    
        <tr>
          <td width="11%"><div align="center"><img src="menu/schlogo.jpg" width="160" height="100"></div></td>
          <td width="100%" bgcolor="#115198">
    	  <applet code="CoolMove.class" width=100% height=100 align="left">
            <param name=SRC value="menu/school1.jpg">
            <param name=MOVE value=1>
          </applet>	  </td>
        </tr>
    
      </table>
    ...
    <div id="Layer6" style="position:absolute; left:-4px; top:664px; width:1005px; height:109px; z-index:6; background-color: #115198; layer-background-color: #115198; border: 1px none #000000;">
    ...
                <p align="center" class="стиль196">Узнай Россию лучше</p>

    http://www.ruschoolcz.com/
    Там полно разномастного говна, лулзы начинаются уже с кода главной страницы, дальше не смотрел ещё %)

    RaZeR, 04 Марта 2012

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

    +76

    1. 1
    <a href="#" onclick="return wrapContent(event,<%=HomeBean.getThumbnailUrl(f,request,response,bean.getOwner(),bean.getLoggedInUser(), true)%>,0,0,<%=HtmlUtils.xmlAttrVal(HtmlUtils.javaScriptConst(MiscUtils.divideLongWord(f.getName().trim(),30,"<wbr>",true), false)+", "+Formatter.formatSize(f.getSize()))%>,          '<%= (bean.getOwner().getPlan().hasFeaturePlayMusicFiles() && f.isMediaFile() && !recycleBin &&!((SharedFile) f).isPorn() ) ? new DownloadLink((SharedFile)f, bean.getLoggedInUser()).composeLink(true) : "" %>','<%=f.getExt()%>',<%=HomeBean.getPreviewWidth(f)%>)">

    вызов функции для показа превью картинки

    haluz, 23 Февраля 2012

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

    +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
    function page($page,$total,$link) {
    			$content='';
    			if ($total > 1)	{					
    				$s=($total-$page<6)?(5-$total+$page):0; 
    				for ($i=1;$i<5+$s;$i++) if($page-$i>0) $al[$i]='<a href="'.$link.'page='.($page-$i).'" class="pag_a">'.($page-$i).'</a>';
    				$s=($page<6)?(6-$page):0; 
    				for ($i=1;$i<5+$s;$i++) if($page+$i<=$total) $ar[$i]='<a href="'.$link.'page='.($page+$i).'" class="pag_a">'.($page+$i).'</a>';
    				unset($s);
    				
    				if ($page==1) $cl='pag_an'; else $cl='pag_a';
    				$pervpage='<a href="'.$link.'page='.($page-1).'" class="'.$cl.'"> &#8592; </a>';
    				if ($page>5 && $total>10) $pervpage.='<a href="'.$link.'page=1" class="pag_a">1</a>';
    				if ($page>6 && $total>10) $pervpage.='<a class="pag_an">...</a>';
    				if ($page<$total-5 && $total>10) $nextpage='<a class="pag_an">...</a>';
    				if ($page<$total-4 && $total>10) $nextpage.='<a href="'.$link.'page='.$total.'" class="pag_a">'.$total.'</a>';
    				
    				if ($page==$total) $cl='pag_an'; else $cl='pag_a';
    				$nextpage.='<a href="'.$link.'page='.($page+1).'" class="'.$cl.'" > &#8594; </a>';
    				
    				$content='<div class="page">';
    				$content.=$pervpage.$al[9].$al[8].$al[7].$al[6].$al[5].$al[4].$al[3].$al[2].$al[1].'<a class="pag_an">'.$page.'</a>'.$ar[1].$ar[2].$ar[3].$ar[4].$ar[5].$ar[6].$ar[7].$ar[8].$ar[9].$nextpage;
    				$content.='</div>';
    			}
    			return $content;
    		}

    good_web_master, 19 Февраля 2012

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

    +116

    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
    class MyClass
    {
      private List<MyObject> _collection = new List<MyObject>();
      public int SelectedObjectIndex { get; set; }
    	
      private void SelectionChanged( List<MyViewObject> selectedObjects )
      {
        bool bFound = false;
    
        foreach (MyViewObject item in objects)
        {
          if (!bFound)
          {
            for (int i = 0; i < _collection.Count; i++)
            {
              if (item.Tag != null && item.Tag is MyObject)
              {
                if (_collection[i] == item.Tag)
                {
                  this.SelectedObjectIndex = i;
                  bFound = true;
                  break;
                }
              }
            }
          }
          else
          {
            break;
          }
        }
    
        if (!bFound)
        {
          SelectedObjectIndex = -1;
        }
      }
    }

    Просто кладезь какой-то.
    Я переделал исходный код, чтобы было понятнее кто здесь кому и не нужно было разбираться со сложной структурой классов, которая используется в исходнике.
    Все имена классов вымышленные, на них не нужно обращать внимание - все лишь для демонстрации подхода к построению циклов и поиску объектов в коллекциях.

    ICELedyanoj, 17 Февраля 2012

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (strlen($arResult["AUTH"]["NEW_LOGIN"]) > 47)
    	$_POST["NEW_LOGIN"] = substr($arResult["AUTH"]["NEW_LOGIN"], 0, 47);
    
    if (strlen($arResult["AUTH"]["NEW_LOGIN"]) < 3)
    	$arResult["AUTH"]["NEW_LOGIN"] .= "_";
    
    if (strlen($arResult["AUTH"]["NEW_LOGIN"]) < 3)
    	$arResult["AUTH"]["NEW_LOGIN"] .= "_";

    битрикс, компонент sale.order.ajax

    ast, 17 Февраля 2012

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