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

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

    +166

    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
    bool ok = false;
     
            // инициализируем WinInet
            HINTERNET hInternet =
                    ::InternetOpen(
                            TEXT("WinInet Test"),
                            INTERNET_OPEN_TYPE_PRECONFIG,
                            NULL,NULL,
                            0);
     
            if (hInternet != NULL) {
                    // открываем HTTP сессию
                    HINTERNET hConnect =
                            ::InternetConnect(
                                    hInternet,
                                    TEXT(URL),
                                    INTERNET_DEFAULT_HTTP_PORT,
                                    NULL,NULL,
                                    INTERNET_SERVICE_HTTP,
                                    0,
                                    1u);
     
                    if (hConnect != NULL) {
                            // открываем запрос
                            HINTERNET hRequest =
                                    ::HttpOpenRequest(
                                            hConnect,
                                            TEXT("GET"),
                                            TEXT(DOC),
                                            NULL,
                                            NULL,
                                            0,
                                            INTERNET_FLAG_KEEP_CONNECTION,
                                            1);
     
                            if (hRequest != NULL) {
                                    // посылаем запрос
                                    BOOL bSend = ::HttpSendRequest(hRequest, NULL,0, NULL,0);
                                    if (bSend) {
                                            // создаём выходной файл
                                            ofstream fnews("news.html",ios::out|ios::binary);
                                            
                        if (fnews.is_open())
                                            for (;;) {
                                                    // читаем данные
                                                    char  szData[1024];
                                                    DWORD dwBytesRead;
                                                    BOOL bRead =
                                                            ::InternetReadFile(
                                                                    hRequest,
                                                                    szData,sizeof(szData)-1,
                                                                    &dwBytesRead);
    
                                                    if (bRead == FALSE  ||  dwBytesRead == 0)
                                                            break;
     
                                                    // сохраняем результат
                                                    szData[dwBytesRead] = 0;
                                                    fnews << szData;
                                                    cout << szData;
     
                                                    ok = true;
                                            }
                                    }
                                    // закрываем запрос
                                    ::InternetCloseHandle(hRequest);
                            }
                            // закрываем сессию
                            ::InternetCloseHandle(hConnect);
                    }
                    // закрываем WinInet
                    ::InternetCloseHandle(hInternet);
            }

    qbasic, 05 Марта 2011

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

    +166

    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
    # Получаем историю активации карт пользователя
    		$query = mysql_query("CENSORED") or die(mysql_error());
    		$usercount=mysql_numrows($query);
    
    		# Добавляем бонусы для каждой 10-й и 100-й карты
    		for ($i=0; $i<=1000; ($i+=10)) // переменная $i изменяется от 1 до 5. В скобках { ... } заключена одна итерация (заход) цикла.
    		{
    		$g=$i-1;
    		if($g=="-1")
    		{
    		}
    		else
    		{
    			switch($usercount)
    			{
    			case "$g":
    			if($g=="99" OR $g=="199" OR $g=="299" OR $g=="399" OR $g=="499" OR $g=="599" OR $g=="699" OR $g=="799" OR $g=="899" OR $g=="999")
    			{
    			# Добавляем бонусы каждой 100-й карте
    			$query = mysql_query("CENSORED");
    			$query = mysql_query("CENSORED");
    			$query = mysql_query("CENSORED");
    			}
    			else
    			{
    			# Добавляем бонусы каждой 10-й карте
    			$query = mysql_query("CENSORED");
    			$query = mysql_query("CENSORED");
    			$query = mysql_query("CENSORED");
    			}
    			break;
    			header("Location: $refer?err=ok");
    			exit;
    			}
    		}
    		}

    Нашел этот код в одном из проектов, поддержкой которого пришлось заниматься. Это сервис в котором пользователь активирует бонусные карты. Таким чудесным образом автор учитывал дополнительные бонусы за каждую 10-ю и 100-ю карту... Авторское форматирование сохранено. SQL запросы пришлось спрятать.

    kostj, 04 Марта 2011

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

    +166

    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
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
        <title>Сайт Управления безопасности информационных технологий</title>
      </head>
      <body>
    <?php
    echo "You will be redirected after 5 seconds";
    sleep(5);
    header("Location: https://itsdhub");
    ?>
      </body>
    </html>

    Найдено в fido7.ru.php.
    Хотел сделать с помощью PHP редирект с таймаутом.

    Считал, что сначала пользователь увидит сообщение "You will be...", а через
    пять секунд сработает header. Hо получается так, что сообщение в браузере не
    выводится, а просто идет пятисекундная задержка с последующим срабатыванием
    header. Почему? Что я не так сделал?

    0__1, 04 Марта 2011

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

    +166

    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
    $url=$_SERVER['REQUEST_URI'];
    $url9=substr($url,0,9);
    $url8=substr($url,0,8);
    $url14=substr($url,0,14);
    $url10=substr($url,0,10);
    $url5=substr($url,0,5);
    if ($url9=='/calendar') {
    printf('<!-- (C)2000-2010 Gemius SA - gemiusAudience / sitecom / Calendar -->
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    var pp_gemius_identifier = new String(\'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\');
    //--><!]]>
    </script>
    <script type="text/javascript" src=" http://site.com/gemius/xgemius.js"></script>');
    }elseif ($url8=='/content'){
    printf('<!-- (C)2000-2010 Gemius SA - gemiusAudience / sitecom / Content -->
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    var pp_gemius_identifier = new String(\'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\');
    //--><!]]>
    </script>
    <script type="text/javascript" src=" http://site.com/gemius/xgemius.js"></script>');
    }
    elseif ($url14=='/forum_arch'){
    printf('<!-- (C)2000-2010 Gemius SA - gemiusAudience / sitecom / Forum archiv -->
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    var pp_gemius_identifier = new String(\'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\');
    //--><!]]>
    </script>
    <script type="text/javascript" src=" http://site.com/gemius/xgemius.js"></script>');
    }
    elseif ($url10=='/forum/'){
    printf('<!-- (C)2000-2010 Gemius SA - gemiusAudience / sitecom / Forum pages -->
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    var pp_gemius_identifier = new String(\'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\');
    //--><!]]>
    </script>
    <script type="text/javascript" src=" http://site.com/gemius/xgemius.js"></script>');
    }
    elseif ($url5=='/news'){
    printf('<!-- (C)2000-2010 Gemius SA - gemiusAudience / sitecom / News -->
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    var pp_gemius_identifier = new String(\'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\');
    //--><!]]>
    </script>
    <script type="text/javascript" src=" http://site.com/gemius/xgemius.js"></script>');
    }
    else {
    printf('<!-- (C)2000-2010 Gemius SA - gemiusAudience / sitecom / Glavnaja stranitsa sajta -->
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    var pp_gemius_identifier = new String(\'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\');
    //--><!]]>
    </script>
    <script type="text/javascript" src=" http://site.com/gemius/xgemius.js"></script>');
    }

    Вместо xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxx в коде оригинальные id счетчиков. Это всё чудо лежит в базе и выполняется через eval()

    nergalic, 01 Марта 2011

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

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    function assign($params)
    {              
            return $params[0];
    }

    Функция с одной коммерческой cms. Можно же обойтись и без функции. Да и желательно сделать проверку на существование переменной.

    codosub, 23 Февраля 2011

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

    +166

    1. 1
    2. 2
    $pif=explode('?',$_SERVER['REQUEST_URI']);
    $tym=explode('=',$pif[1]);

    Вот такой вот способ получить значение переменной из GET запроса вида:
    http://127.0.0.1/component/index.php?name=r37.edoc

    isergey, 10 Февраля 2011

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

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if(VisabilityOnOff==true){
    	   document.SearchForm.searchoption[0].disabled=true;
    	   document.SearchForm.searchoption[1].disabled=true;
    }else if(VisabilityOnOff==false){
    	   document.SearchForm.searchoption[0].disabled=false;
    	   document.SearchForm.searchoption[1].disabled=false;
    }

    kuku, 09 Февраля 2011

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

    +166

    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
    // 0. original version:
    struct Subscriber {
    	ServiceConfig *services;
    };
    
    struct ServiceConfig {
    };
    
    // reported problem: as per doc, Customer may have multiple service configurations, yet we can configure only one.
    
    // 1. next "fixed" version, as delivered to the customer:
    struct Subscriber {
    };
    
    struct ServiceConfig {
    	Subscriber *subs;
    };
    
    // ticket reopened: wtf. changing services for one customer, affects others!!
    
    // 2. next "fixed" version, as delivered to the customer:
    struct Subscriber {
    	ServiceConfig *services;
    };
    
    struct ServiceConfig {
    };
    
    // ticket reopened: @#$%^& [*BEEP*] @#$%^& [*BEEP*] @#$%^&*
    
    // 3. finally:
    struct Subscriber {
    };
    
    struct ServiceConfig {
    };
    
    struct SubscriberServiceConfig {
    	Subscriber *subs;
    	ServiceConfig *services;
    };

    если бы лично не лицезрел эту переписку (навечно задокументированую в аналах вершн контрол) между нашими разработчиками и консультантами работающими на инсталяции у кастомера, нивжисть бы не поверил что такое даже может иметь место.

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

    Dummy00001, 07 Февраля 2011

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

    +166

    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
    function f1(element){
      if (element.value.length == 3 && event.keyCode != 8){
       document.getElementById('phone2').focus();
      }
     }
        
     function f2(element){
      // Возврат в phone1 после стирания первого символа в phone2:
      if (element.value.length == 0 && event.keyCode == 8){
       setCaretPosition(document.getElementById('phone1').value.length, inp = 'phone1');
      }   
      // Переход в phone3 после ввода третьего символа в phone2:
      if(element.value.length == 3 && event.keyCode != 8){
       document.getElementById('phone3').focus();
      }
     } 
    
     function f3(element){
      // Возврат в phone2 после стирания первого символа в phone3:
      if (element.value.length == 0 && event.keyCode == 8){
       setCaretPosition(document.getElementById('phone2').value.length, inp = 'phone2');
      }
      // Переход в phone4 после ввода второго символа в phone3:
      if(element.value.length == 2 && event.keyCode != 8){
       document.getElementById('phone4').focus();
      }  
     }
     
     function f4(element){
      // Возврат в phone3 после стирания первого символа в phone4:
      if (element.value.length == 0 && event.keyCode == 8){
       setCaretPosition(document.getElementById('phone3').value.length, inp = 'phone3');
      }
     }
     
     function f5(element){
      if (element.value.length == 4 && event.keyCode != 8){
       document.getElementById('phone6').focus();
      }
     }
        
     function f6(element){
      // Возврат в phone5 после стирания первого символа в phone6:
      if (element.value.length == 0 && event.keyCode == 8){
       setCaretPosition(document.getElementById('phone5').value.length, inp = 'phone5');
      }
     }
     
     function setCaretPosition(pos, inp){
      var ctrl = document.getElementById(inp);
          
      if(ctrl.setSelectionRange){
       ctrl.focus();
       ctrl.setSelectionRange(pos, pos);
      }
      else if(ctrl.createTextRange){
       var range = ctrl.createTextRange();
       range.collapse(true);
       range.moveEnd('character', pos);
       range.moveStart('character', pos);
       range.select();
      }
      }

    проверка на корректность ввода телефона

    DrFreez, 06 Февраля 2011

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

    +166

    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
    <?
    ...
    <a href="<?php echo $this->_tpl_vars['sBaseBackend']; ?>
    /page/<?php echo $this->_tpl_vars['aMapMenuItem']['list']->id; ?>
    /"><?php if ($this->_tpl_vars['aMapMenuItem']['list']->header != ''): ?><?php echo $this->_tpl_vars['aMapMenuItem']['list']->header; ?>
    <?php else: ?><?php echo $this->_tpl_vars['aMapMenuItem']['list']->uri; ?>
    <?php endif; ?></a> <?php if ($this->_tpl_vars['aMapMenuItem']['list']->type == 'photo'): ?><sub><a href="<?php echo $this->_tpl_vars['sBaseBackend']; ?>
    /albums/index/<?php echo $this->_tpl_vars['aMapMenuItem']['list']->id; ?>
    /">альбомы</a></sub><?php endif; ?>
    			<?php if ($this->_tpl_vars['aMapMenuItem']['list']->id_parent >= 0): ?>
    				<?php if ($this->_tpl_vars['aMapMenuItem']['list']->position > 1): ?>
    ...
    ?>

    1_and_0, 31 Января 2011

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