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

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

    +160

    1. 1
    2. 2
    unset($this->session->data['order_id']);
    $this->data['pap4_orderid'] = $this->session->data['order_id'];

    Не разбирался зачем сохраняется order_id, но в любом слусае - где логика?
    opencart, /catalog/controller/checkout/success.php, 13-14 строки

    antongorodezkiy, 09 Ноября 2011

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

    +174

    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
    $this->_filters = array(
    	"" => array("\\1".chr(28)."\\2", array(
    	"/({$_Jb}{$_M}{$_Je}{$_M}{$_Jh}{$_M})({$_Ja}{$_M}{$_Jv}{$_M}{$_Ji}{$_M}{$_Jo}{$_M}{$_Jr}{$_WS_OPT}{$_Jdd})/is",
    	"/({$_Jgav}{$_M}{$_Ji}{$_M}{$_Jm})({$_M}{$_Jp}{$_M}{$_Jo}{$_M}{$_Jr}{$_M}{$_Jt})/",
    	"/({$_Jgalka}{$_Jvopr}{$_M}{$_Ji}{$_M})({$_Jm}{$_M}{$_Jp}{$_M}{$_Jo}{$_M}{$_Jr}{$_M}{$_Jt})/is",
    	"/({$_Jj}{$_M3}{$_Ja}{$_M3}{$_Jv}{$_M3})({$_Ja}{$_M3}{$_Js}{$_M3}{$_Jc}{$_M3}{$_Jr}{$_M3}{$_Ji}{$_M3}{$_Jp}{$_M3}{$_Jt}{$_M3}{$_Jdd})/is",
    	"/({$_Jv}{$_M3}{$_Jb}{$_M3})({$_Js}{$_M3}{$_Jc}{$_M3}{$_Jr}{$_M3}{$_Ji}{$_M3}{$_Jp}{$_M3}{$_Jt}{$_M3}{$_Jdd})/is",
    	"/({$_Je}{$_M2}{$_Jx}{$_M2})({$_Jp}{$_M2}{$_Jr}{$_M2}{$_Je}{$_M2}{$_Js}{$_M2}{$_Js}{$_M2}{$_Ji}{$_M2}{$_Jo}{$_M2}{$_Jn}{$_M2}{$_Jss})/is",
    /* + ещё строк двести зубодробительных регулярок, исполняющихся в каждом запросе */
    );
    
    /* а это подставляется в них */
    
    $_M='(?:[\x09\x0a\x0d\\\\]*)';
    $_M3='(?:[\x09\x0a\x0d\\\\\s]*)';
    $_M2='(?:(?:[\x09\x0a\x0d\\\\\s]|(?:\/\*.*?\*\/))*)';
    
    /* и это тоже подставляется */
    
    $_Jv ="(?:v|(?:\\\\0*[75]6))";
    $_Js ="(?:s|(?:\\\\0*[75]3))";
    $_Jc ="(?:c|(?:\\\\0*[64]3))";
    $_Jr ="(?:r|(?:\\\\0*[75]2))";
    $_Ji ="(?:i|(?:\\\\0*[64]9))";
    $_Jp ="(?:p|(?:\\\\0*[75]0))";
    $_Jt ="(?:t|(?:\\\\0*[75]4))";

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

    Генеральный директор «1С-Битрикс» Сергей Рыжиков

    actuator, 08 Ноября 2011

    Комментарии (12)
  4. SQL / Говнокод #8436

    −115

    1. 1
    SELECT id, login, 0 AS shows, 0 AS clicks, 0 AS money FROM users WHERE is_adv=1 AND is_blocked=0 AND (shows <> 0 AND clicks <> 0 AND money <> 0)

    peredozo, 07 Ноября 2011

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

    +161

    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
    class Super_Loader extends Zend_Loader {
        public static function loadClass($class, $dirs = null)
        {
            parent::loadClass($class, $dirs);
        }
    
        private function moduleIsExist($name) {
            if(is_dir(APPLICATION_PATH . "/modules/" . $name . "/")) {
                return true;
            }
    
            return false;
        }
    
        public static function autoload($class)
        {
            $classArray = explode("_", $class);
            $firstPart = array_shift($classArray);
    
            if(self::moduleIsExist($firstPart)) {
    
                $moduleDir = APPLICATION_PATH . "/modules/";
                $typePart = array_shift($classArray);
                switch($typePart) {
                    case "Lib":
                        $file_name = $moduleDir . $firstPart . "/lib/" . implode("/", $classArray) . ".php";
                        break;
                    case "Model":
                        $file_name = $moduleDir . $firstPart . "/models/" . implode("/", $classArray) . ".php";
                        break;
                    default:
    
                        break;
                }
    
                if($file_name) {
                    try {
                        self::loadFile($file_name);
                        return $class;
                    } catch (Exception $e) {
                        return false;
                    }
                }
            } else {
                try {
                    self::loadClass($class);
                    return $class;
                } catch (Exception $e) {
                    return false;
                }
            }
        }
    }

    Свой супер-автолоадер для ZF

    asfalanaft, 03 Ноября 2011

    Комментарии (12)
  6. Pascal / Говнокод #8404

    +93

    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
    Type
      Bool8   = ByteBool;  PBool8   = ^Bool8;
      Bool16  = WordBool;  PBool16  = ^Bool16;
      Bool32  = LongBool;  PBool32  = ^Bool32;
      Bool64  = Boolean64; PBool64  = ^Bool64;
      Int8    = Shortint;  PInt8    = ^Int8;
      Int16   = Smallint;  PInt16   = ^Int16;
      Int32   = Longint;   PInt32   = ^Int32;
      //Int64   = Int64;     PInt64   = ^Int64;
      IntPR   = Int64;     PIntPR   = ^IntPR;
      Word8   = Byte;      PWord8   = ^Word8;
      Word16  = Word;      PWord16  = ^Word16;
      Word32  = LongWord;  PWord32  = ^Word32;
      Word64  = QWord;     PWord64  = ^Word64;
      WordPR  = Word64;    PWordPR  = ^WordPR;
      //Pointer = Pointer;   PPointer = ^Pointer;
      Float32 = Single;    PFloat32 = ^Float32;
      Float64 = Double;    PFloat64 = ^Float64;

    AnimeGovno-_-, 02 Ноября 2011

    Комментарии (12)
  7. Pascal / Говнокод #8402

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    var x,y,z,w,arctan:real;
    begin
      Readln(x,y,arctan,z);
      w:=(2+y*y)*(x+y/2)/(y*y+1/(1+y*y))-sqrt(Sqr(Sinarctan(z))+abs(Cos(y)));
      Writeln(w);

    Надо посчитать w, скажите плз, где ошибки

    dimalolx, 02 Ноября 2011

    Комментарии (12)
  8. Ruby / Говнокод #8325

    −101

    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
    class CheckDatabaseYmlEncoding < ActiveRecord::Migration
      def self.up
        config   = Rails::Configuration.new
        ['development', 'production' ].each { |env|
          db_config = config.database_configuration[env];
          if db_config
            if db_config['encoding'] != 'utf8'
              msg = "please use encoding: utf8 in database.yml's #{env} configuration"
              Rails.logger.error(msg)
              raise msg 
            else
              Rails.logger.info("database.yml's #{env} configuration is using encoding: utf8. Good !" )
            end
          else
            Rails.logger.error("#{env} is missing in database.yml" )
          end
        }
    
      end
    
      def self.down
      end
    end

    Задорная миграция

    Fester, 27 Октября 2011

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

    +139

    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
    96. 96
    97. 97
    j = 0;
    while (len >= 8)
    {
    	N[0] = N[0] ^ in[j++];
    	N[1] = N[1] ^ in[j++];
    
    	// first round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	S = N[0];
    	N[0] = N[0] + k[1]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	S = N[0];
    	N[0] = N[0] + k[2]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped k[3] - k[6] */		
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	// second round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	len = len - 8;
    };
    
    if (len > 0)
    {
    	for (i=0;i<len;i++)
    		((uint8 *)N)[i] = ((uint8 *)N)[i]^((uint8 *)&in[j])[i];
    
    	// first round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	// second round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    };

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

    defecate-plusplus, 20 Октября 2011

    Комментарии (12)
  10. VisualBasic / Говнокод #8248

    −149

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Dim a as Stack
    Dim b as Stack
    
    For n :=8 to 1:
        a.Push 1
        b.Push 1 xor n
        if n xor 1 = 1 then
        begin
             a.push(b) b.push(a)
        end
    end

    Мультивложенные стеки
    Операции за О(1)
    Вставка, забывчивость
    О(1)
    Извлечение в От (1)
    От - О с чертой
    Константа, короче говоря.
    Настоящий стек.

    alexoy, 19 Октября 2011

    Комментарии (12)
  11. VisualBasic / Говнокод #8246

    −83

    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
    Sub Main()
            Dim MyArray() As Integer
            Dim start As Integer
            Dim ends As Integer
            Dim i As Integer
    
    
    
            For i = 0 To 10
    
    
    
                MyArray(i) = Console.ReadLine()
    
                i = i + 1
    
            Next
    
            'start = Console.Read
    
    
    
    
            Console.ReadKey()
        End Sub
    
    End Module

    как присвоить элементы массива значение введенное с клавиатуры?

    smitty, 19 Октября 2011

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