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

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

    +157

    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
    Часть 1
    =====================================
    foreach ($_POST['massive'] as $key => $val)
    {
    @mysql_query("INSERT INTO table VALUES (NULL,'".$val."'");
    } 	
    ======================================
    Часть 2
    ======================================
    if (!empty($_POST['massive'])/*&&is_array($_POST['massive']) для любителей пожестче=)*/)
    {
    //Так мы точно знаем что нам что-то передали(не выскочит нотис).
    //Далее надо сформировать правильный запрос. Никогда, НИКОГДА нельзя делать кучу инсертов циклом, т.к. скорее всего это закончиться смертью сервера.
    //А сделать как-нить так
    
    foreach ($_POST['massive'] as $key => $val)
    {
     $query.="('".mysql_real_escape_string($val)."'),"; //Cделаем заготовку для запроса, попутно параметр экранируется, что бы злобные хакеры не подсунули нам кавычку и прочую гадость.
    }
    $query= 'INSERT INTO table VALUES'.substr($query, 0, -1).';';//Обрежем последнюю лишнюю запятую, и в итоге получим запрос вида INSERT INTO table VALUES (),(),()..();
    if (!mysql_query($query)) //Скажу по секрету, что ставить собаку это моветон.
    {
     print "Упс, что-то сломалось";
     print mysql_error();
    }else {print "Вот и все"}
    ==========================================

    Вобщем, увидел на одном форуме часть 1.
    Будучи в хорошем настроении решил поправить. И Выдал часть 2, прямо вот в форуме. Думал отправить.. Но попахивает же, да?

    vitaly, 23 Августа 2010

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

    +120

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    string makesig(string mid, string apiid, string method, string secret, string[] param)
            {
                string[] fullparams = new string[] { "api_id=" + apiid, "method=" + method, "v=3.0", "format=JSON" };
                string methodparams = String.Join("©", param);
                string fullparams_j = String.Join("©", fullparams);
                string fpr = String.Join("©", new string[] { fullparams_j, methodparams });
                string[] fpr_s = fpr.Split(new char[] { Convert.ToChar("©") });
                Array.Sort(fpr_s);
                fpr = String.Join("", fpr_s);
                string last = String.Concat(mid, fpr, secret);
                return getMd5Hash(last);
            }

    Так люди делают подпись для запроса к API ВКонтакте

    A1mighty, 19 Августа 2010

    Комментарии (16)
  4. Perl / Говнокод #3972

    −117

    1. 1
    2. 2
    if ( $src =~ /^(.+)$/ ) { $src = "$1"; }
    if ( $dst =~ /^(.+)$/ ) { $dst = "$1"; }

    Еще один вариант проверки на непустую строку.

    mrtaryk, 13 Августа 2010

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

    +168

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function Logika($f)
    {
            $t=($f=true) ? true : false
            switch($t)
            {
                  case true:  $return=1; break;
                  case false: $return=0; break;
                  default: $return;break;
            }
            return $return;
    }

    Да-да-да, про тернарный было много раз, просто это особенно впечатлило.

    scalar4eblo4no, 09 Августа 2010

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

    +151

    1. 1
    $o = ($o < 0) ? 0 : $o;

    Оооо, как меня задолбал такой код

    sogekoder, 08 Августа 2010

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function create (char, repeat) {
    var string = '';
    while (repeat--) string += char;
    return string;
    }

    Заполняем строку одинаковыми символами

    eval, 01 Августа 2010

    Комментарии (16)
  8. Java / Говнокод #3818

    +64

    1. 1
    reader = new CSVReader(new BufferedReader(new InputStreamReader(new FileInputStream(csvFile), "UTF-8")), Config.getCSVDelimiter());

    Хорошо что файл ещё не зазипован...

    tinynick, 29 Июля 2010

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

    +163

    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
    long GetMicroseconds();
    
    CTvoid cLog::GetTime (char * acLocal, time_t tTime)
    {
      struct tm   ltLocalTime;
      struct tm * ptLocalTime;
    
      tTime       = time (NULL);
      ptLocalTime = localtime_r (&tTime, &ltLocalTime);
    
      sprintf(acLocal,"%04d%02d%02d %02d%02d%02d-%06ld",
                       ptLocalTime->tm_year+1900,
                       ptLocalTime->tm_mon+1,
                       ptLocalTime->tm_mday,
                       ptLocalTime->tm_hour,
                       ptLocalTime->tm_min,
                       ptLocalTime->tm_sec,
                       GetMicroseconds());
    
    }
    
    long GetMicroseconds()
    {
        struct timeval timeVal;
    
        if (0 == gettimeofday( &timeVal, NULL ))
            return timeVal.tv_usec;
    
        return -1;
    }
    
    cLog::__Write(...)
    {
        /* ... */
        tTime          = time(NULL);
        GetTime (acDataTime, tTime);
        /* ... */
    }

    R&D дали задание добавить микросекунды ко всем таймстемпам в логах.
    сказано - сделано.
    ну ведь никто не говорил что таймстемпы должны быть еще и консистентными.

    ЗЫ ну и time() надо вызвать раза два-три - для надёжности.

    Dummy00001, 28 Июля 2010

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

    +167

    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
    <?php
    /*///////////////////////////////////////////////
    Эта функция инклюдит файл.
    Все, что этот файл отправляет на вывод,
    не уходит на вывод, а возвращется этой функция
    
    Для работы, функция использует функции ob, 
    которые работают с буфером, поэтому 
    использовать их для друхих целей нужно очень 
    аккуратно и только, если вы знаете, 
    как все это функционирует
    ///////////////////////////////////////////////*/
    
    function s_file ( /*string-путь к файлу*/ $path )
    {
        ob_start() ;              //Запускает буферизацию вывода 
        require ($path) ;         //Запускает файл по адрессу  
        return ob_get_clean () ;  //Возвращает содержимое буфера или FALSE при ошибке
    }
    
    ?>

    Berliner, 28 Июля 2010

    Комментарии (16)
  11. JavaScript / Говнокод #3778

    +170

    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
    star1.onmouseover = function () {
    star1.className = 'selected';
    }
    star1.onmouseout = function () {
    star1.className = 'not-selected';
    }
    star2.onmouseover = function () {
    star1.className = 'selected';
    star2.className = 'selected';
    }
    star2.onmouseout = function () {
    star1.className = 'not-selected';
    star2.className = 'not-selected';
    }
    star3.onmouseover = function () {
    star1.className = 'selected';
    star2.className = 'selected';
    star3.className = 'selected';
    }
    star3.onmouseout = function () {
    star1.className = 'not-selected';
    star2.className = 'not-selected';
    star3.className = 'not-selected';
    }
    star4.onmouseover = function () {
    star1.className = 'selected';
    star2.className = 'selected';
    star3.className = 'selected';
    star4.className = 'selected';
    }
    star4.onmouseout = function () {
    star1.className = 'not-selected';
    star2.className = 'not-selected';
    star3.className = 'not-selected';
    star4.className = 'not-selected';
    }
    star5.onmouseover = function () {
    star1.className = 'selected';
    star2.className = 'selected';
    star3.className = 'selected';
    star4.className = 'selected';
    star5.className = 'selected';
    }
    star5.onmouseout = function () {
    star1.className = 'not-selected';
    star2.className = 'not-selected';
    star3.className = 'not-selected';
    star4.className = 'not-selected';
    star5.className = 'not-selected';
    }

    Реализация звёздочек для рейтинга. При наведении мышкой на звёздочку все предшествующие ей звёздочки "загораются", при отведении — "потухают".

    eval, 25 Июля 2010

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