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

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

    +158.3

    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
    <?php
    
    function secure2() {
        secure();
    }
    
    function secure() {
        secure3();
    }
    
    function secure3() {
        if (!check_session()) {
            $cookie = try_cookie();
            tiny_login($cookie['login'], $cookie['pass'], 1);
            if (check_session()) {
                $ret = true;
            } else {
                $ret = false;
            }
        } else {
            $ret = true;
        }
    
        if (!$ret) {
            $_SESSION['loginerror'] = 'Ошибка авторизации';
            header('location:(ссылка)');
        }
    }
    
    ?>

    В догонку к http://govnokod.ru/1820 по просьбе в комментах
    Реальный код из реального проекта. Что самое интересное — используется secure2
    Как оно работает для меня — загадка.

    Shock, 19 Сентября 2009

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

    +64.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    ReturnType SomeFunction(...)
    {
      ...
      {
        Mutex mutex;
        Mutex::ScopedLock lock(mutex);
        ...
      }
      ...
    }

    убер синхронизация

    g26g, 18 Сентября 2009

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

    +160.6

    1. 1
    2. 2
    3. 3
    $query=mysql_query("SELECT * FROM `PS_card_list` WHERE `id_categ`='".$_GET['point']."';");
    
    while ($row=mysql_fetch_array($query)) $card_on_plan++;

    Наследие военных разработчиков

    vectart, 17 Сентября 2009

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

    +156.2

    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
    function ChangeDisc(n, size, l_x, l_y, r_x, r_y)//а-а-а-а-а-а убейте меня
    {
        var disc_left = document.getElementById('sDisc1');
        var disc_right = document.getElementById('sDisc2');
        var disc_left_div = document.getElementById('sDisc1_div');
        var disc_right_div = document.getElementById('sDisc2_div');
        switch (size)
        {
            case 13:
                disc_left_div.style.paddingLeft = (l_x+3)+'px';
                disc_left_div.style.paddingTop = (l_y+2)+'px';
                disc_right_div.style.paddingLeft = (r_x+6)+'px';
                disc_right_div.style.paddingTop = (r_y+2)+'px';
                break;
            case 14:
                disc_left_div.style.paddingLeft = (l_x+1)+'px';
                disc_left_div.style.paddingTop = (l_y+1)+'px';
                disc_right_div.style.paddingLeft = (r_x+1)+'px';
                disc_right_div.style.paddingTop = (r_y+1)+'px';
                break;
            case 15:
                disc_left_div.style.paddingLeft = l_x+'px';
                disc_left_div.style.paddingTop = l_y+'px';
                disc_right_div.style.paddingLeft = r_x+'px';
                disc_right_div.style.paddingTop = r_y+'px';
                break;
            case 16:
                disc_left_div.style.paddingLeft = (l_x-2)+'px';
                disc_left_div.style.paddingTop = (l_y-2)+'px';
                disc_right_div.style.paddingLeft = (r_x-2)+'px';
                disc_right_div.style.paddingTop = (r_y-2)+'px';
                break;
            case 17:
                disc_left_div.style.paddingLeft = (l_x-3)+'px';
                disc_left_div.style.paddingTop = (l_y-4)+'px';
                disc_right_div.style.paddingLeft = (r_x-5)+'px';
                disc_right_div.style.paddingTop = (r_y-4)+'px';
                break;
            case 18:
                disc_left_div.style.paddingLeft = (l_x-5)+'px';
                disc_left_div.style.paddingTop = (l_y-5)+'px';
                disc_right_div.style.paddingLeft = (r_x-8)+'px';
                disc_right_div.style.paddingTop = (r_y-6)+'px';
                break;
            case 19:
                disc_left_div.style.paddingLeft = (l_x-8)+'px';
                disc_left_div.style.paddingTop = (l_y-8)+'px';
                disc_right_div.style.paddingLeft = (r_x-8)+'px';
                disc_right_div.style.paddingTop = (r_y-8)+'px';
                break;
            case 20:
                disc_left_div.style.paddingLeft = (l_x-10)+'px';
                disc_left_div.style.paddingTop = (l_y-10)+'px';
                disc_right_div.style.paddingLeft = (r_x-10)+'px';
                disc_right_div.style.paddingTop = (r_y-10)+'px';
                break;
        }
        disc_left.src = Images[n].src;
        disc_right.src = Images[n].src;
        scroll(0,0);
    }

    копипаста процветает... правильно, зачем структурировать код? проще так.

    gorky, 09 Сентября 2009

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

    +161.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $CMS_VERSION = "1.3.1";
    $CMS_VERSION_NAME = "Havana";
    $CMS_SCHEMA_VERSION = "29";
    
    define('CMS_VERSION', $CMS_VERSION);
    define('CMS_VERSION_NAME', $CMS_VERSION_NAME);
    define('CMS_SCHEMA_VERSION', $CMS_SCHEMA_VERSION);

    На работе имеем дело с CMSMS (CMSMadeSimple).
    С модой у создателей неплохо, тут тебе и рекурсивный акроним в названии, и именнованные релизы... Но для чего делать вот так?

    p.s. говнокод откопал мой коллега. Привет ему ;)

    striker, 09 Сентября 2009

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

    +136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    /// <summary>Read-Only property. Gets the Age.</summary>
    public Int32 Age {
    	get {
    		Int32 age = 0;
    		if(this.dateOfBirth != DateTime.MaxValue){
    			String temp = (DateTime.Now.Subtract(this.dateOfBirth).TotalDays / 365).ToString();
    			age = Convert.ToInt32(temp.Substring(0, temp.IndexOf(".")));
    		}
    		return (age);
    	}
    }

    вот только одно не понимаю -- мочему Int32?

    OlgaWolga, 02 Сентября 2009

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function doSomething(){
    
      static firstTime = true;
    
      if (firstTime){
        //Этот код исполнится только при первом обращении к функции
      }
    //Этот код будет выполнятся при каждом обращении к функции
    }

    Пример взят из книги (дословно)...

    Bartelby, 29 Августа 2009

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

    +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
    public void Recalculate(List<DateTime> weekDates,List<HistoricalRateOccurence> historicalRates) {
                UnitsTotal = MonUnits + TuesUnits + WedsUnits + ThursUnits + FriUnits + SatUnits + SunUnits;
                if (historicalRates.Count == 0) {
                    PayAmount = UnitsTotal*PayRate;
                }else {
                    for (int i = 0; i < weekDates.Count; i++) {
                        switch (i) {
                            case 0:
                                PayAmount += MonUnits*GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;
                            case 1:
                                PayAmount += TuesUnits * GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;                            
                            case 2:
                                PayAmount += WedsUnits * GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;                            
                            case 3:
                                PayAmount += ThursUnits * GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;                            
                            case 4:
                                PayAmount += FriUnits * GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;
    
                        }
                    }
                }
                ChargeAmount = UnitsTotal * AmsBillRate;
            }

    Никогда не доверяй циклу!

    xrundelek, 28 Августа 2009

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

    +136.2

    1. 1
    2. 2
    3. 3
    var ids = form.Keys;
    
    if(ids.Length == 0 || ids.Length > 1) { throw Exception;}

    кидать исключение если ids.Length !=1

    xrundelek, 28 Августа 2009

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

    +51.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    CSocket*   CServer::GetSocket  (const int& fd) { // Find socket by FD
      if (m_mapSocket[fd]) return m_mapSocket[fd];
      else return NULL;
    }
    // another one piece of crap...
    void CServer::CloseSocket(const int& fd) { // Close Socket.
      delete m_mapSocket[fd];
      if (m_mapSocket[fd]) m_mapSocket.erase(fd);
    
      FD_CLR(fd,&FFd_set);
      if (fd == FMax_fd) FMax_fd--;
    }

    zaufi, 28 Августа 2009

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