1. C++ / Говнокод #1872

    +60.6

    1. 1
    2. 2
    3. 3
    static char *szClassName = new char[14];
    static char *szCurrentDirectory = new char[MAX_BUFFER];
    static char *szNewFolder = new char[MAX_BUFFER];

    глобальные указатели рулят, delete нигде не вызывается

    shomeser, 20 Сентября 2009

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

    +158.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
    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
    <?php
    
    function secure2() {
        secure();
    }
    
    function secure() {
        secure3();
    }
    
    function secure3() {
        if (!check_session()) {
            $cookie = try_cookie();
            tiny_login($cookie['login'], $cookie['pass'], 1);
            if (check_session()) {
                $ret = true;
            } else {
                $ret = false;
            }
        } else {
            $ret = true;
        }
    
        if (!$ret) {
            $_SESSION['loginerror'] = 'Ошибка авторизации';
            header('location:(ссылка)');
        }
    }
    
    ?>

    В догонку к http://govnokod.ru/1820 по просьбе в комментах
    Реальный код из реального проекта. Что самое интересное — используется secure2
    Как оно работает для меня — загадка.

    Shock, 19 Сентября 2009

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

    +163.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    //Я ТИПА ЗДЕСЬ СДЕЛАЛ НА ГАЛЕРЕЕ 4 КАРТИНКИ
                   if(this.id=='gallery') {
                        this.previewCount = 4;
                   } else {
                        this.previewCount = 4;
                   }

    Недавно код пересматривали. Авторы долго отнекивались

    hagnar, 19 Сентября 2009

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

    +152.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Перл #1:
     ...
     setCityId(getCityId()); 
     ...
    
    Перл #2:
    function performOrgSearch(){
      // ...
      cityId = getCityId(); // функция getCityId вычищает всё из некого input type=text

    yvu, 18 Сентября 2009

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

    +145.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if($record->getTitle()) {
      $request->setAttribute('title', $record->getTitle());
    }else{
      $request->setAttribute('title', $record->getName());
    }

    определение существования метода у объекта $record

    seroy, 18 Сентября 2009

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

    −97.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
    Запрос1 = Новый Запрос;
    	Запрос1.Текст = "ВЫБРАТЬ
    	|	Номенклатура.ЕдиницаИзмерения
    	|ИЗ
    	|	Справочник.Номенклатура КАК Номенклатура
    	|ГДЕ
    	|	Номенклатура.Ссылка = &ном";
    	
    	
    	Запрос1.УстановитьПараметр("Ном", ЭлементыФормы.Товары.ТекущаяСтрока.Номенклатура);
    	
    	
    	
    	Результат1 = Запрос1.Выполнить();
    	Выборка1 = Результат1.Выбрать();
    	
    	Пока Выборка1.Следующий() Цикл
    		ед = выборка1.единицаизмерения;
    	КонецЦикла;			
    	
    	ЭлементыФормы.Товары.ТекущаяСтрока.ЕдИзм= ед;

    "Простой" способ подставить единицу измерения в табличную часть))

    vedvd, 18 Сентября 2009

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

    +156.1

    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
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    function CompletesGetTableOld($clist, $mid =0)
    {
      if(strlen($clist) or $mid > 0)
      {
        $com = CatalogComplsCostsGet(0, 0, $clist, $mid);
        $csz = sizeof($com['id']);
        if($csz > 0)
        {
            $param = CatalogComplParamsGet();
            $psz = sizeof($param);
            $tds = '';
            
            $cVals = CatalogComplParamValsGet(implode(",", $com['cid']));
            
            echo '
    		<table cellpadding="4" cellspacing="0" border="0" width="700" class="table-comp">
    		 <tr><td width="50%" class="first"></td>
           	';
            for($i = 0; $i < $csz; $i++)
     	    {
     	        echo '<td align="center">'.$com['name'][$i].'</td>';
     	        $tds .= '<td> &nbsp; </td>';
     	    }
            echo '</tr>';
            
            $prgrnm = '';
            for($i = 0; $i < $psz; $i++)
     	    {
     	        $data = false;
     	        $html = '';
     	        if($i==0||$param[$i]['gr_name']!=$prgrnm)
     	        {
    				$html='
    				<tr>
    					<td class="first"><br><b>'.$param[$i]['gr_name'].'</b></td>';for($ii = 0; $ii < $csz; $ii++)$html.='<td class="second" > &nbsp; </td>';
    					$html.= $tds.'
    				</tr>';
     	        }
     	        $html.= '
     	        <tr>
     	          <td class="first">'.$param[$i]['name'].'</td>';
     	        
     	        for($ii = 0; $ii < $csz; $ii++)
         	    {
         	        @$val = $cVals[$com['cid'][$ii]][$param[$i]['id']];
         	        if(isset($val) and strlen($val))
         	        {
         	            if($param[$i]['type'] == 'CH') 
         	            {
         	                if($val == 1)
         	                {
         	                    $html.= '<td class="second" align="center"><img src="/images/tochka.gif" ></td>'; 
         	                    $data = true;
         	                }
         	                else $html.= '<td class="second"> &nbsp; </td>';
         	                
         	            }
         	            else 
         	            {
         	                $html.= '<td class="second" align="center">'.$val.'</td>';
         	                $data = true;
         	            }
         	        }
         	        else $html.= '<td class="second"> &nbsp; </td>';
         	    }
         	    $html.= '</tr>';
         	    
         	    if($data) 
         	    {
         	        $prgrnm = $param[$i]['gr_name'];
         	        echo $html;
         	    }
     	    }
     	    
     	    echo '
     	     <tr><td width="50%" class="first"><b>????</b></td>';
     	    for($i = 0; $i < $csz; $i++)
     	    {
     	    	$cost = intval($com['cost'][$i]);
     	        if($cost > 1000000) $cost = '<nobr>'.substr($cost, 0, -6)." ".substr($cost, 1, -3).". ".substr($cost, 4).'</nobr> ???';
     	        elseif($cost > 100) $cost = '<nobr>'.substr($cost, 0, -3)." ".substr($cost, strlen($cost)-3).'</nobr> ???';
     	        else $cost = '';
         	        
     	        echo '<td class="second" align="center" height="30">'.$cost.'</td>';
     	    }
                   
            echo '</tr>
            </table>';
             
            return true;
        }
      }
       
      return false;
    }

    обратите внимание на переменную $data. долго и упорно собираем из кусочков $html, и только если $data истинно тогда выводим $html (примерно 5-10% случаев)

    gorky, 18 Сентября 2009

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

    +64.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    ReturnType SomeFunction(...)
    {
      ...
      {
        Mutex mutex;
        Mutex::ScopedLock lock(mutex);
        ...
      }
      ...
    }

    убер синхронизация

    g26g, 18 Сентября 2009

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

    +98

    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
    BOOL NewStartUsed()
    {
      if ((BOOL) -1 == bNewStartUsed) {
        bNewStartUsed = FALSE;
        bNewStartUsed = TRUE;
        int iVal = bNewStartUsed;
    
        if (GetConfigInt(&iVal, "NewStart", "Common", ConfigFile)) {
          bNewStartUsed = (0 != iVal);
        }
      }
      return bNewStartUsed;
    }

    просто но комментс...

    kubrinsky, 18 Сентября 2009

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

    −108.2

    1. 1
    2. 2
    Движение.Состояние = Перечисления.СостоянияРаботникаОрганизации[Причина.Метаданные().ЗначенияПеречисления[Перечисления[Причина.Метаданные().Имя].Индекс(Причина)].Имя];
    .

    Видимо, защита от шпиона: вот так определяется значение перечисления. (Причина - это тоже перечисление)

    Kopchuga, 18 Сентября 2009

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