1. PHP / Говнокод #4186

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if(!function_exists('getImg')){
        function getImg($isVip)
        {
        $type = false;
        if (isset($_GET['f']) && $_GET['f']) $type = 1;
        if (isset($_GET['bl']) && $_GET['bl']) $type = 16;
        if (isset($_GET['lw']) && $_GET['lw']) $type = 'author';
        if (isset($_GET['sym']) && $_GET['sym'] && $isVip) $type = 2;
        return $type;
        }
    }

    Функция getImg: хм... название как бэ намекает нам, что должно на выходе получиться что-нибудь типа картинки или её адреса, НО НЕТ! нам возвращается какой-то тип...
    Что это за тип (ну да, да, php бестиповой язык, но нужно же как-то хотя бы намёки на тип делать) - одному Богу известно, НО! эта переменная изначально логическая, потом ВНЕЗАПНО превпращается в число, ну и под конец может быть и строкой! (ну а почему бы и нет)
    Причём конечно же всем очевидна последовательность: 1, 16, (опять-таки ВНЕЗАПНО) 'author', ну и по уже "понятной" логике в конце 2

    Да, ну и разумеется вокруг оооочень много комментариев поясняющие этот кусок кода...
    А вы на индусов ругаетесь... Так-то!

    Zemtall, 06 Сентября 2010

    Комментарии (5)
  2. Куча / Говнокод #4185

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Что такое скрипт Интернет магазина?
    Скрипт интернет магазина – это набор файлов, позволяющий на своем сайте
    организовать онлайн магазин.
    
    Готовый скрипт интернет магазина
    Скрипт php магазина - это готовое решение для создания интернет магазина с
    максимальной экономией времени и денег. Если Вам нужна быстрая и качественная
    разработка интернет магазина, то готовый скрипт электронного магазина именно то,
    что Вам нужно.

    Источник: http://shopcms-design.ru/
    Думаю, что это всё же говнокод. На языке "русский" =)

    hybroid, 06 Сентября 2010

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

    +165

    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
    class microTimer {
    	function start() {
    		global $starttime;
    		$mtime = microtime();
    		$mtime = explode( ' ', $mtime );
    		$mtime = $mtime[1] + $mtime[0];
    		$starttime = $mtime;
    	}
    	function stop() {
    		global $starttime;
    		$mtime = microtime();
    		$mtime = explode( ' ', $mtime );
    		$mtime = $mtime[1] + $mtime[0];
    		$endtime = $mtime;
    		$totaltime = round( ($endtime - $starttime), 5 );
    		return $totaltime;
    	}
    }

    DLE 9.0

    Morgan, 06 Сентября 2010

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

    +133

    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
    <script id="tpl_top" type="text/html" style="display: none;"><a name="comment_<%= row.id %>"></a>
    <table cellspacing="0" id="comment-cnt_<%= row.id %>" class="<%= row.tableClass %>">
        <tr>
            <% if (row.side === 2) { %>
            <td width="5" class="transp_td"><div class="spacer"></div></td>
            <% } %>
            <td width="5" height="5" class="ug_1">
                <div class="spacer"></div>
            </td>
            <td><div class="spacer"></div></td>
            <td width="5" class="ug_2"><div class="spacer"></div></td>
            <% if (row.side === 1) { %>
            <td width="5" class="transp_td"><div class="spacer"></div></td>
            <% } %>
        </tr>

    Фрагмент из http://holywars.ru/
    Не могу определить, что за скрипт такой text/html, поэтому поместил в Кучу.
    Если я туплю, поставьте 11 минусов за ламерство, и этот ГК исчезнет.

    inkanus-gray, 06 Сентября 2010

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

    +171

    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
    define('ERROR', 1);
    define('WARNING', 2);
    define('PARSE', 4);
    define('NOTICE', 8);
    define('CORE_ERROR', 16);
    define('CORE_WARNING', 32);
    define('COMPILE_ERROR', 64);
    define('COMPILE_WARNING', 128);
    define('USER_ERROR', 256);
    define('USER_WARNING', 512);
    define('USER_NOTICE', 1024);
    // ---------------------------
    $errortype = array(
    1=>'Ошибка',
    2=>'Предупреждение!',
    4=>'Ошибка разборщика',
    8=>'Замечание',
    16=>'Ошибка ядра',
    32=>'Предупреждение ядра!',
    64=>'Ошибка компиляции',
    128=>'Предупреждение компиляции!',
    256=>'Пользовательская Ошибка',
    512=>'Пользовательскаое Предупреждение!',
    1024=>'Пользовательскаое Замечание',
    2048=>'Небольшое замечание',
    8192=>'Устаревший код');

    Мартин, 06 Сентября 2010

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

    +160

    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
    <?php
    require_once 'mainfunc.php';
    $template->msg('SET TITLE', $conf['wiki']['title']);
    $rev = intval(@$_GET['rev']);
    if(@$_GET['ae']){session_destroy();unset($admin);}
    ?>
    <h1><?= $conf['wiki']['title']; ?></h1>
    <p><a href="create.php">[Создать статью]</a> <?php
    if($rev) echo '<a href="index.php?rev=0">[Перевернуть]</a>';
    else echo '<a href="index.php?rev=1">[Перевернуть]</a>';
    ?></p>
    <?php
    $tpr = array();
    echo '<p>';
    $fls = array();
    foreach(scandir('files') as $k) if($k{0}!='.') $fls[]=$k;
    natsort($fls);
    if($rev) $fls=array_reverse($fls);
    foreach($fls as $k){
      if($k{0}=='-') continue;
      $f=file('files/'.$k);
      if($f[0]{0}=='#') $f[0]{0}='';  $tpr[] = '<a href="view.php?id='.$k.'">'.$f[0].'</a><br>';
    }
    $pnav = new PageNavigator($tpr, 'index.php?page=$p&rev='.$rev);
    $pnav->page();
    echo '</p>';
    echo '<p class="nav">';
    $pnav->panel();
    echo '</p>';
    if(@$admin) echo '<p>Вы админ <a href="index.php?ae=1">[X]</a></p>';
    $template->act(); //Запускаем вывод
    ?>

    Инновационный вики-движок для вап-интернета, в действии можно посмотреть здесь: http://wiki.wup.ru/
    От одного index.php становится худо.
    Плюс работает это еще с помощью какого-то фреймворка, при этом весь html размазан практически по всему проекту, да и все это еще на файлах.
    Куча дыр, фильтрующие регулярки не пашут, даже банального антифлуда нет - можно жать f5 и радоваться.
    Полностью сорцы можно скачать тут: http://wiki.wup.ru/wikibackups/

    7ion, 06 Сентября 2010

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Но имей ввиду, в реали, когда на работу пойдёшь, в СУБД у тебя уже скорее всего будет помойка, в том числе с триггерами. 
    К этому надо привыкнуть, так как никакие уговоры убрать триггера на «товарищей» не подействуют, наоборот разозлят, 
    над тобой будут смеяться и скажут, что крутые пацаны работают только на триггерах.
    От хакерских атак одно подключение не спасёт, это я просто так высмеиваю шибко «умных» людей.
    
    Eсть другая идея - на странице регистрации высвети кнопки с цифрами и алфавитом чтобы пользователь вводил пароль не с клавиатуры,
     а щёлкая мышью по кнопкам. Сами кнопки можешь в случайном порядке расположить.
    Потом мы вместе с тобой будем над хакерами смеяться.

    Max Pro рассуждает на тему безопасности.
    http://sql.ru/forum/actualthread.aspx?tid=787435
    тут пытаемся выманить его на разговор про серверный жаваскрипт
    http://www.sql.ru/forum/memberinfo.aspx?mid=14149
    тут ссылка на его профиль раз
    http://www.aspnetmania.com/Users/User/1614.html
    тут ссылка на профиль два.
    сообщения доставляют
    http://aspnetmania.com/Blogs/1614.html
    тут старый блог

    ursus, 06 Сентября 2010

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

    +144

    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
    #include <iostream>
    using namespace std;
    void f(double *x1,double *x2,double *x3)
    {
    	if (((*x1>*x2)&&(*x1<*x3))||((*x1<*x2)&&(*x1>*x3)))
    		*x1=(*x2+*x3)/2;
    	if (((*x2>*x1)&&(*x2<*x3))||((*x2<*x1)&&(*x2>*x3)))
    		*x2=(*x1+*x3)/2;
    	if (((*x3>*x1)&&(*x3<*x2))||((*x3<*x1)&&(*x3>*x2)))
    		*x3=(*x2+*x1)/2;
    }
    int main()
    {
    	double x1,x2,x3;
    	cin>>x1>>x2>>x3;
    	double *y1=&x1;
    	double *y2=&x2;
    	double *y3=&x3;
    	f(y1,y2,y3);
    	cout<<x1<<' '<<x2<<' '<<x3;
    	return 0;
    }

    Креатив.

    Irdis, 06 Сентября 2010

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

    +69

    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
    /**
         * Инициализация набора действий, определенных для контейнера.
         * @param context
         * @throws DfException
         */
        protected void initializeTransitions(EditorContext context) throws DfException{
            AbstractDocumentModel documentModel = getDocumentModel();
            AbstractState state = documentModel.getLifeCyclePolicy(context).getState(context);
            
            if (!documentModel.isNew())
            {
                addTransition(TransitionName.CREATE_DETACHED_COMMISSION, TransitionHandler.CREATE_DETACHED_COMMISSION);
                addTransition(TransitionName.PRINT, TransitionHandler.PRINT);
            }
            AbstractTaskModel taskModel = context.getTaskModel();
            if (taskModel  instanceof ReviewDocumentTaskModel && !(taskModel  instanceof ExpeditionaryProcessingDocumentTaskModel)){
    //                 && !(taskModel instanceof AttachFileAndReviewDocumentTaskModel)){
    
                      
            if ((taskModel instanceof AttachFileToDocumentTaskModel || taskModel instanceof WaitForScanningTaskModel) && ((documentModel instanceof InternalDocumentModel) || (documentModel instanceof OutgoingDocumentModel) || (documentModel instanceof IncomingDocumentModel)))
                addTransition(TransitionName.PRINT_BARCODE, TransitionHandler.PRINT_BARCODE);
    
            if (taskModel instanceof AbstractDocumentTaskModel){
                if ( state instanceof AbstractDraftState ){
                    if( state instanceof NewProtocolDraftState)
                        addTransition(ContainerAction.ACTION_NAME, TransitionName.SEND_DRAFT, TransitionName.REGISTER, TransitionHandler.SEND_DRAFT);
                    else if (state instanceof NewDraftState)
                        addTransition(TransitionName.SEND_DRAFT, TransitionHandler.SEND_DRAFT);
                    if (state instanceof AbstractApprovalDraftState)
                        addTransition(TransitionName.REWORK_DRAFT, TransitionHandler.REWORK_DRAFT);
                    if (state instanceof AnalyseDraftState)
                        addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_ANALYSE, TransitionHandler.SEND_DRAFT);
                    if (state instanceof ControlDraftState)
                        addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_CONTROL, TransitionHandler.SEND_DRAFT);
                    if (state instanceof ApproveDraftState)
                        addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_APPROVAL, TransitionHandler.SEND_DRAFT);
                    if (state instanceof SignDraftState)
                        addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_SIGN, TransitionHandler.SEND_DRAFT);
                    if (state instanceof ExternalApproveDraftState)
                        addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_APPROVAL, TransitionHandler.SEND_DRAFT);
                    if (state instanceof ControlApproveDraftState)
                        addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_CONTROLED, TransitionHandler.SEND_DRAFT);
                    if (state instanceof ConfirmationDraftState)
                        addTransition(TransitionName.SEND_DRAFT, TransitionDescription.SEND_DRAFT_CONFIRM, TransitionHandler.SEND_DRAFT);
                }
              }
            }
            
    .................. несколько страниц такого кода ...........................
          
            if (state instanceof AbstractApprovalDraftState ||
                state instanceof ReworkDraftState ||
                state instanceof NewDocumentState ||
                state instanceof RegisterDocumentState ||
                state instanceof ReviewDocumentState ||
                state instanceof ExecuteDocumentState){
            	addTransition(TransitionName.SAVE, TransitionHandler.SAVE);
            }
    
            super.initializeTransitions(context);
        }

    Автор решил захардкодить в одном месте логику переходов между всеми состояниями всех жизненных циклов всех документов, реализованных в системе документооборота. Получился говнокод-BPM-движок. А внешне код очень даже солидный: с константами и комментариями... и названиями классов вроде: ExpeditionaryProcessingDocumentTaskModel

    dab84, 06 Сентября 2010

    Комментарии (10)
  10. SQL / Говнокод #4177

    −865

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    FUNCTION f_decncity_arr_find_base(p_gds_id IN NUMBER, p_date IN DATE DEFAULT SYSDATE) RETURN VARCHAR2 IS
        v_denc15 NUMBER; v_k0 NUMBER; v_k1 NUMBER;
    BEGIN
        decncity_arr_find_base(p_gds_id, p_date, v_denc15, v_k0, v_k1);
        RETURN 'DENC15!=@'||TO_CHAR(v_denc15)||'@ K0!=@'||TO_CHAR(v_k0)||'@ K1!=@'||TO_CHAR(v_k1)||'@';
    END;

    Так и не поняли, что это....

    markbrutt, 06 Сентября 2010

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