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

    +1004

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (param["LOG"] != NULL) // пришли логи от плагина.
        {
            this->logs = new loger();
            this->logs->write(param["LOG"], param["TYPE"], this->Name, name);
            delete this->logs;
            return;
        }

    Так мы пишем логи

    ir4y, 12 Января 2012

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

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    $headers = @get_headers("http://".$domen_name."/templates/form-".$_GET['id'].".tpl");
            if(preg_match("|200|", $headers[0])) 
            {
                $form = file_get_contents($root."/templates/form-".$_GET['id'].".tpl");

    Самая жестокая проверка на существование файла которую я видел в своей жизни.
    Кодеры не знали про file_exists()

    sqlhack, 11 Января 2012

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

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    private function _arrayToString($array)
        {
            $count = count($array);
            $str = '';
            for ($i = 0; $i < $count; $i++) {
                $str .= $array[$i] . ',';
            }
            $str = substr($str, 0, strlen($str) - 1);
            return $str;
        }

    implode ?? не, не слышал!

    sqrt, 11 Января 2012

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

    +155

    1. 1
    2. 2
    foreach ($period_range as $k=>$v) 
    	{?><option value="<?=$k?>"<?=($k==$period)?' selected':''?>><?=$v?></option><?}

    Накодил как-то...

    zima, 11 Января 2012

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

    +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
    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
    <?php
    function bracket_checker($input_string)
    {
    $checked = true;
    $bracket1_open = "(";
    $bracket1_close = ")";
    $bracket2_open = "[";
    $bracket2_close = "]";
    $bracket3_open = "{";
    $bracket3_close = "}";
    If (strlen($input_string)> 30)
    	die("Wrong length of the input string!");
    $bracket1_count= substr_count($input_string,$bracket1_open);
    $bracket2_count= substr_count($input_string,$bracket1_close);
    If ($bracket1_count != $bracket2_count)
    	$checked = false;
    $bracket1_count= substr_count($input_string,$bracket2_open);
    $bracket2_count= substr_count($input_string,$bracket3_close);
    If ($bracket1_count != $bracket2_count)
    	$checked = false;
    
    $bracket1_count= substr_count($input_string,$bracket3_open);
    $bracket2_count= substr_count($input_string,$bracket3_close);
    If ($bracket1_count != $bracket2_count)
    	$checked = false;
    
    If  ($checked)
    	print("Check passed!");
    else
    	print("Check failed!");
    }
    
    echo "ab ( cd ()[]) ef{5} - "; bracket_checker("ab ( cd ()[]) ef{5}"); echo "\n";
    echo "ab ( cd { ef ) gh } ij - "; bracket_checker("ab ( cd { ef ) gh } ij"); echo "\n";
    
    ?>

    Прямо с собеседования пишу

    varg242, 11 Января 2012

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

    +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
    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
    (define rsagen
      (lambda ()
         (for-each (lambda (rsa counter)
                     (cond
                      ((> (random) 0.5)
                       (fprintf out-quest "%N=~s, d=~s\n\\item Задача. Криптосистема RSA. Дано: $p=~s,\\ q=~s,\\ e=~s$. Вычислить $N, d$.\n"
                                (third rsa)
                                (fifth rsa)
                                (first rsa)
                               (second rsa)
                               (fourth rsa)
                               
                               ))
                      (else
                       ((lambda (randM) 
                          (fprintf out-quest "%p=~s,q=~s,e=~s,M=~s\n\\item Задача. Криптосистема RSA. Дано: $d=~s,\\ N=~s,\\ C=~s$. Вычислить $M$.\n"
                                   (first rsa)
                                   (second rsa)
                                   (fourth rsa)
                                (rsacrypt randM (fourth rsa) (third rsa))
                                (fifth rsa)
                               (third rsa)
                               randM
                               ))
    
                        ((Y
                          (lambda (checkrand)
                            (lambda (randf)
                              ((lambda (rand)
                                 (cond
                                  ((not (eq? (rsacrypt rand (fourth rsa) (third rsa)) rand))
                                   rand)
                                  (else
                                   (checkrand randf))))
                               (randf)))))
                         (lambda () (- (third rsa) (+ (random (quotient (third rsa) 2)) 1))))
                         
                        )
                        )
                       )
                     )
                   (take (shuffle (getalllistallmany_e (next-primes 7 50) (next-primes 5 10))) 14)
                   (build-list 14 (lambda (x) (+ x 1))))
         ))

    Генерирование заданий по криптосистеме RSA. Обратите внимание на Y комбинатор.

    shem, 11 Января 2012

    Комментарии (36)
  7. C# / Говнокод #9076

    +127

    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
    string res = "";
                try
                {
                    if (org_id == NewId.ToString())
                    {
                        string query = "delete from ARMVZ_CONFIG where org_id = " + org_id;
                         OdbcCommand cmd = new OdbcCommand(query, getConnect());
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = "delete from organisations where id = " + org_id;
                         cmd.ExecuteNonQuery();
                        cmd.CommandText = "delete from services where orgid = " + org_id;
                        cmd.ExecuteNonQuery();
                        NewId = 0;
                         res = "";
                    }
                    else
                    {
                        try
                        {
                            string query = "select * from tmp_organisations where id = " + org_id;
                             OdbcCommand cmd = new OdbcCommand(query, getConnect());
                            DataTable dt = new DataTable();
                            dt.Load(cmd.ExecuteReader());
                            if (dt.Rows.Count > 0)
                             {
                                query = "update organisations set ";
                                foreach (DataColumn col in dt.Columns)
                                {
                                    if (col.ColumnName != "id")
                                     {
                                        query = query + col.ColumnName +
                                                                 " = (select " + col.ColumnName +
                                                                    @" from tmp_organisations where tmp_organisations.id = " + org_id + " ),";
                                     }
                                }
                                query = query.Remove(query.Length - 1);
                                query = query + " where id = " + org_id;
                                 cmd.CommandText = query;
                                dt.Dispose();
                                cmd.ExecuteNonQuery();
    
                            }
                        }
                        catch
                         {
                            //
                        }
                        try
                        {
                            string query = "select * from tmp_armvz_config where org_id = " + org_id;
                             OdbcCommand cmd = new OdbcCommand(query, getConnect());
                            DataTable dt = new DataTable();
                            dt.Load(cmd.ExecuteReader());
                            if (dt.Rows.Count > 0)
                             {
                                query = "update armvz_config set ";
                                foreach (DataColumn col in dt.Columns)
                                {
                                    if (col.ColumnName != "org_id")
                                     {
                                        query = query + col.ColumnName +
                                                                 " = (select " + col.ColumnName +
                                                                    @" from tmp_armvz_config where tmp_armvz_config.org_id = " + org_id + " ),";
                                     }
                                }
                                query = query.Remove(query.Length - 1);
                                query = query + " where org_id = " + org_id;
                                 cmd.CommandText = query;
                                dt.Dispose();
                                cmd.ExecuteNonQuery();
    
                            }
                        }
                        catch
                         {
                            //
                        }

    метод называется "rollback_transaction". весь метод просто не влез

    bercerker, 11 Января 2012

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

    +164

    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
    function recoveryPassword( $data )
    {
    	$value = implode( '', $data );
    	$key = implode( '', array_keys( $data ) );
    
    	$query = '
    		SELECT
    			u.user_id AS `id`,
    			u.login,
    			u.salt,
    			u.mail,
    			u.status
    		FROM
    			users AS `u`
    		WHERE
    			u.'.$key.' = "'.$value.'"
    		LIMIT 1;';
    
    	if( !list($result) = $this->db->get($query) )
    	{
    		...
    }

    Копаясь в старом студийном коде наткнулся. Видимо, предполагалось, что в качестве $data будет передан массив вида array( 'field' => 'value' ) c 1 элементом.

    faiwer, 11 Января 2012

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

    +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
    int count_object = 64;
    int colum = 8;
       for(int i = 0; i < count_object; i++){
            mObject *dot = new mObject(this);
            vec.push_back(dot);
            scene->addItem(dot);
        }
    
        int t = 1;
    
        for(int j = 0; j < vec.size()-1; j++){
            if(t >= colum){
               scene->addItem(new mConnect(vec[j+1],vec[j+2]));
               t = 0;
            }else{
               scene->addItem(new mConnect(vec[j],vec[j+1]));
            }
            ++t;
        }
    
        for(int g = 0; g < colum; g++){
            int u = 0;
            for(int y = 0; y < vec.size()/9; y++){
                scene->addItem(new mConnect(vec[g+u],vec[u+colum+g]));
                u = u + colum;
                }
            }

    особенно порвало "for(int y = 0; y < vec.size()/9; y++){"

    Mindless, 10 Января 2012

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

    +136

    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
    static BOOL CALLBACK callbackEspecial(
      LPSTR aModuleName,
      DWORD aModuleBase,
      ULONG aModuleSize,
      PVOID aUserContext)
    {
        BOOL retval = TRUE;
        DWORD addr = *(DWORD*)aUserContext;
    
        /*
         * You'll want to control this if we are running on an
         *  architecture where the addresses go the other direction.
         * Not sure this is even a realistic consideration.
         */
        const BOOL addressIncreases = TRUE;
    
        /*
         * If it falls inside the known range, load the symbols.
         */
        if (addressIncreases
           ? (addr >= aModuleBase && addr <= (aModuleBase + aModuleSize))
           : (addr <= aModuleBase && addr >= (aModuleBase - aModuleSize))
            ) {
            retval = _SymLoadModule(GetCurrentProcess(), NULL, aModuleName, NULL, aModuleBase, aModuleSize);
        }
    
        return retval;
    }

    аццкая адресация
    http://mozilla-thunderbird.sourcearchive.com/documentation/1.5.0.10-0ubuntu3/nsStackFrameWin_8cpp-source.html

    63F45EF45RB65R6VR, 10 Января 2012

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