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

    В номинации:
    За время:
  2. Куча / Говнокод #9999

    +64

    1. 1
    http://i.imgur.com/z30k3.png

    bot, 20 Апреля 2012

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

    +146

    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
    <div class="whitestar<?=preg_replace ("/^[^0-9\s]*$/","",$array[0]->OriginalStarName);?>" style="z-index:4;position:absolute;top:187px;left:196px;"></div>
    <!--<div style="z-index:4;font-family:'Arial';font-weight:normal;font-size:9px;color:#000000;position:absolute;top:185px;left:250px;width:150px;"><input type=checkbox value='Сравнить' chechked><a href="#" style="color:#000000;border:0px;font-size:10px;text-decoration:underline;">Сравнить</a></div>-->
    </div>
    		<div class="pr_cover">
    <div style="z-index:26;font-family:'Arial';font-weight:bold;text-decoration:none;text-transform:uppercase;font-size:12px;color:#FFFFFF;position:absolute;top:18px;left:24px;width:100px;"><?=$array[0]->OriginalMealName;?></div>
    <div style="z-index:26;font-family:'Arial';font-weight:normal;text-decoration:none;text-transform:none;font-size:12px;color:#FFFFFF;position:absolute;top:39px;left:24px;width:95px;">Цена указана за одного человека в номере <?=$array[0]->RoomName;?><br/> за <?=$array[0]->Nights;?> ночей<br/><a href=# style="font-family:'Arial';font-weight:normal;text-decoration:underline;text-transform:none;font-size:12px;color:#FFFFFF;border: 0px none;">На карте</a><div class="whitearrow" style="z-index:26;position:relative;top:-11px;left:55px;"></div></div>
    
    <?//get hotel url for colorbox popup
    //var_dump($array[0]);die();
    $urlParams = "?HotelId={$array[0]->HotelId}"."&HotelName=".urlencode($array[0]->HotelName)."&CityFromName=".urlencode($array[0]->CityFromName)."&CountryName=".urlencode($array[0]->CountryName)."&ResortName=".urlencode($array[0]->ResortName)."&CheckInDate=".urlencode($array[0]->CheckInDate)."&Nights=".urlencode($array[0]->Nights)."&MealName=".urlencode($array[0]->MealName)."&Price=".urlencode($array[0]->Price)."&StarId=".urlencode($array[0]->StarId).'&RoomName=' . urlencode($array[0]->RoomName) . '&HotelDescriptionUrl=' . urlencode($array[0]->HotelDescriptionUrl);
    $open_hotel_url = "http://_удалено_/stranica_informacii_ob_otele/" . $urlParams;
    $open_contact_url = "http://_удалено_/oformlenie_zakaza_iframe/" . $urlParams;
    $open_hotel_title=strtoupper($array[0]->CountryName).', '.$array[0]->ResortName;?>
    
    <div style="z-index:26;position:absolute;top:182px;left:24px;width:100px;"><a href='<?=$open_hotel_url;?>' title='<?=$open_hotel_title?>' class='vitrina_open_hotel_popup' style="font-family:'Arial';font-weight:normal;text-decoration:underline;text-transform:none;font-size:12px;color:#FFFFFF;border: 0px none;">Подробнее</a></div>
    <div class="whitearrow" style="z-index:26;position:absolute;top:185px;left:96px;"></div>
    
    <div style="z-index:26;font-family:'Arial';font-weight:bold;text-decoration:none;text-transform:none;font-size:10px;color:#FFFFFF;position:absolute;top:18px;left:150px;width:160px;"><b style="text-transform:uppercase;">Стоимость включает:</b>

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

    chlap, 17 Апреля 2012

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

    +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
    $forms = array(
                array('копейка', 'копейки', 'копеек', 1), // 10^-2
                array('гривна', 'гривны', 'гривень',  0), // 10^ 0
                array('тысяча', 'тысячи', 'тысяч', 1), // 10^ 3
                array('миллион', 'миллиона', 'миллионов',  0), // 10^ 6
                array('миллиард', 'миллиарда', 'миллиардов',  0), // 10^ 9
                array('триллион', 'триллиона', 'триллионов',  0), // 10^12
            );
            $out = $tmp = array();
            // Поехали!
            $tmp = explode('.', str_replace(',','.', $inn));
            $rub = number_format($tmp[ 0], 0,'','-');
            if ($rub== 0) $out[] = $nol;
            // нормализация копеек
            $kop = isset($tmp[1]) ? substr(str_pad($tmp[1], 2, '0', STR_PAD_RIGHT), 0,2) : '00';
            $segments = explode('-', $rub);
            $offset = sizeof($segments);
            if ((int)$rub== 0) { // если 0 рублей
                $o[] = $nol;
                $o[] = '';//$this->morph( 0, $forms[1][ 0],$forms[1][1],$forms[1][2]);
            }

    поехавшие индусы ворочают триллионами

    Bert, 16 Апреля 2012

    Комментарии (13)
  5. Python / Говнокод #9935

    −99

    1. 1
    2. 2
    3. 3
    referer = ''
    if 'HTTP_REFERER' in request.META :
        referer = request.META['HTTP_REFERER']

    И подобного кода в проекте тонны...

    Scipetr, 12 Апреля 2012

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

    +146

    1. 1
    2. 2
    3. 3
    function close() {
    	return(true);
    }

    nethak, 09 Апреля 2012

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

    +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
    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
    public String XOR_Encrypt(String source, String key)
        {
            byte plain_text[] = new byte[source.length()];
            plain_text = source.getBytes();
            byte key_mas[] = new byte[key.length()];
            key_mas = key.getBytes();
            int key_len = key.length();
            int crypt_pos = 0;
            for(int i = 0; i < source.length(); i++)
            {
                plain_text[i] = (byte)(plain_text[i] ^ 0xaa);
                plain_text[i] = (byte)(plain_text[i] ^ key_mas[crypt_pos]);
                if(crypt_pos >= key_len - 1)
                    crypt_pos = 0;
                else
                    crypt_pos++;
            }
    
            String EText = ByteToHexString(plain_text);
            return EText;
        }
        public static String EncodeSimmetr(String s)
        {
            int MultKey = 62142;
            int AddKey = 11719;
            byte f1[] = new byte[s.length()];
            byte f[] = new byte[s.length()];
            f = s.getBytes();
            for(int i = 0; i < s.length(); i++)
            {
                f1[i] = (byte)(f[i] ^ MultKey);
                MultKey ^= AddKey;
            }
    
            s = new String(f1);
            return s;
        }

    Система шифрования в той-же платёжке...

    dinisoft, 28 Марта 2012

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

    +1000

    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
    // Array below is for faster processing of variable length fields with ascii length.
    // Varbuut sho var arii initcializeet dinamiski. 
    char an[1000][3] = 
    {
    	{'0','0','0'},{'0','0','1'},{'0','0','2'},{'0','0','3'},{'0','0','4'},{'0','0','5'},{'0','0','6'},{'0','0','7'},{'0','0','8'},{'0','0','9'},
    	{'0','1','0'},{'0','1','1'},{'0','1','2'},{'0','1','3'},{'0','1','4'},{'0','1','5'},{'0','1','6'},{'0','1','7'},{'0','1','8'},{'0','1','9'},
    	{'0','2','0'},{'0','2','1'},{'0','2','2'},{'0','2','3'},{'0','2','4'},{'0','2','5'},{'0','2','6'},{'0','2','7'},{'0','2','8'},{'0','2','9'},
    	{'0','3','0'},{'0','3','1'},{'0','3','2'},{'0','3','3'},{'0','3','4'},{'0','3','5'},{'0','3','6'},{'0','3','7'},{'0','3','8'},{'0','3','9'},
    // 84 lines deleted
    	{'8','8','0'},{'8','8','1'},{'8','8','2'},{'8','8','3'},{'8','8','4'},{'8','8','5'},{'8','8','6'},{'8','8','7'},{'8','8','8'},{'8','8','9'},
    	{'9','0','0'},{'9','0','1'},{'9','0','2'},{'9','0','3'},{'9','0','4'},{'9','0','5'},{'9','0','6'},{'9','0','7'},{'9','0','8'},{'9','0','9'},
    // 6 lines deleted
    	{'9','7','0'},{'9','7','1'},{'9','7','2'},{'9','7','3'},{'9','7','4'},{'9','7','5'},{'9','7','6'},{'9','7','7'},{'9','7','8'},{'9','7','9'},
    	{'9','8','0'},{'9','8','1'},{'9','8','2'},{'9','8','3'},{'9','8','4'},{'9','8','5'},{'9','8','6'},{'9','8','7'},{'9','8','8'},{'9','8','9'}
    };
    
    			int ll = f->cfg.len_len;
    			long dl = f->data_len;
    			// Prepare length
    			if ( NULL == dst )
    			{
    				dst_len = f->data_len + ll + 1 ;
    				dst = (char*) malloc ( dst_len );
    			}
    			else
    			//if( dst_len < ll + dl )
    			if( dst_len < (unsigned) (ll + dl) )
    			{
    				// TO DOO - error should be processed
    				break;
    			}
    			long i2;
    			if ( ll < 2 )
    			{
    				dst[0]=an[dl][2];
    			}
    			else if ( ll < 3 )
    			{
    				dst[0]=an[dl][1];
    				dst[1]=an[dl][2];
    			}
    			else if ( ll < 4 )
    			{
    				dst[0]=an[dl][0];
    				dst[1]=an[dl][1];
    				dst[2]=an[dl][2];
    			}
    			else if ( ll < 5 )
    			{
    				i2 = dl / 1000;
    				dst[0]=an[i2][2];
    				i2 = dl % 1000;
    				dst[3]=an[i2][2];
    				dst[2]=an[i2][1];
    				dst[1]=an[i2][0];
    			}
    			else if ( ll < 6 )
    			{
    				i2 = dl / 1000;
    				dst[0]=an[i2][1];
    				dst[1]=an[i2][2];
    				i2 = dl % 1000;
    				dst[4]=an[i2][2];
    				dst[3]=an[i2][1];
    				dst[2]=an[i2][0];
    			}
    			else
    			{
    				// General case
    				for ( int k = ll  ; k > 0  ; k-- )
    				{
    					dst[k-1] ='0' + dl % 10;
    					dl/=10;
    				}
    			}
    
    			dst[dl]=0;

    This is a faster version of itoa() or sprintf(str,"%d",value)...
    Unfortunately it has a bug - lines of array with numbers 890-899 and 990-999 is missing.

    wtfcode, 21 Марта 2012

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if($this->unpriced){
                //...............  строк 30 кода
                if($this->unpriced){
                      //................ строк 10 кода
                }                
    }

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

    Edd, 12 Марта 2012

    Комментарии (13)
  10. Си / Говнокод #9651

    +125

    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
    #include <stdio.h>
    
    #define MAXLINE 1000 /* максимальная длина строки в потоке */
    
    int getline(char line[], int maxline);
    
    main()
    {
        int len; /* длина текущей строки */
        char line[MAXLINE]; /* текущая введённая строка */
    
        while((len = getline(line, MAXLINE)) != (-1))
            printf("%s", line);
            
        system("PAUSE");
        return 0;
    }
    
    /* getline: считывает строку в s, удаляет пробелы и знаки табуляции в конце строки, возвращает её длину. Удаляет полностью пустые строки */
    getline(char s[], int lim)
    {
                 int c, i;
                 
                 for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
                       s[i] = c;
                 if (c == EOF)
                    return (-1); /* конец ввода */
                 else if (c == '\n') {
                      while(s[i-1] == ' ' || s[i-1] == '\t') /* "удаление" пробелов и знаков табуляции в конце строки */
                         --i;
                      if (i > 0) { /* если строка непустая */
                         s[i] = '\n';
                         ++i;
                      }
                      s[i] = '\0';
                      return i;
                 }
    }

    Задача: убирать в конце каждой строки лишние пробелы и знаки табуляции, удалять полностью пустые строки.
    Решение: при считывании строки вида "abc_____\n" на выходе получаем массив символов "abc\n\0___" (пробелы в конце). Печатаем строки по мере поступления, профит.

    Говнокод или нормально?

    justanothernickname, 12 Марта 2012

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

    +109

    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 static bool IsLocalAddress(IPAddress address)
    {
       if (address.ToString() == IPAddress.Loopback.ToString())
       {
          return true;
       }
       foreach (IPAddress address2 in LocalAddresses)
       {
          if (address2.ToString() == address.ToString())
          {
             return true;
          }
       }
       return false;
    }

    Выдрано решарпером из одного коммерческой библиотеки.

    absolut, 02 Марта 2012

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