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

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

    +158.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
    // Находим две ближайшие станицы с обоих краев, если они есть
    if($page - 5 > 0) $page5left = ' <a href=adm.php?'.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
    if($page - 4 > 0) $page4left = ' <a href=adm.php?'.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
    if($page - 3 > 0) $page3left = ' <a href=adm.php?'.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
    if($page - 2 > 0) $page2left = ' <a href=adm.php?'.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
    if($page - 1 > 0) $page1left = '<a href=adm.php?'.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
    
    if($page + 5 <= $total) $page5right = ' | <a href=adm.php?'.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
    if($page + 4 <= $total) $page4right = ' | <a href=adm.php?'.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
    if($page + 3 <= $total) $page3right = ' | <a href=adm.php?'.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
    if($page + 2 <= $total) $page2right = ' | <a href=adm.php?'.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
    if($page + 1 <= $total) $page1right = ' | <a href=adm.php?'.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';
    
    // Вывод меню если страниц больше одной
    
    if ($total > 1)
    {
    Error_Reporting(E_ALL & ~E_NOTICE);
    echo "<div class=\"pstrnav\">";
    echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
    echo "</div>";
    }

    Типа постраничный вывод сообщений...

    Cr@ZyBoY, 27 Октября 2009

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

    +160

    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
    <?  switch ($passoAttivo) {
                        case 1:
                            ?>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo1_attivo.gif" alt="Passo 1 attivo" width="56" height="52"></td>
                                        <td width="9%"><img src="<?=base_url()?>/images/passi/passo2.gif" alt="Passo 2" width="56" height="52"></td>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo3.gif" alt="Passo 3" width="56" height="52"></td>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo4.gif" alt="Passo 4" width="56" height="52"></td>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo5.gif" alt="Passo 5" width="57" height="52"></td>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo6.gif" alt="Passo 6" width="57" height="52"></td>
                                    <td width="9%" background="<?=base_url()?>/images/passi/passi_fine_menu.gif"><div align="left"><img src="<?=base_url()?>/images/passi/passo7.gif" alt="Passo 7" width="57" height="52"></div></td>
                                    <td width="9%" background="<?=base_url()?>/images/passi/passi_fine_menu.gif"><img src="<?=base_url()?>/images/passi/passo8.gif" alt="Passo 8" width="56" height="52"></td>
                                    <td width="9%" background="<?=base_url()?>/images/passi/passi_fine_menu.gif"><img src="<?=base_url()?>/images/passi/passo9.gif" alt="Passo 9" width="56" height="52"></td>
                                    <td width="45%" background="<?=base_url()?>/images/passi/passi_fine_menu.gif"><img src="<?=base_url()?>/images/passi/passo10.gif" alt="Passo 10" width="56" height="52"></td>
                                    
                            <?
                            break;
                        case 2:
                            ?>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo1.gif" alt="Passo 1" width="56" height="52"></td>
                                        <td width="9%"><img src="<?=base_url()?>/images/passi/passo2_attivo.gif" alt="Passo 2 attivo" width="56" height="52"></td>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo3.gif" alt="Passo 3" width="56" height="52"></td>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo4.gif" alt="Passo 4" width="56" height="52"></td>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo5.gif" alt="Passo 5" width="57" height="52"></td>
                                    <td width="9%"><img src="<?=base_url()?>/images/passi/passo6.gif" alt="Passo 6" width="57" height="52"></td>
                                    <td width="9%" background="<?=base_url()?>/images/passi/passi_fine_menu.gif"><div align="left"><img src="<?=base_url()?>/images/passi/passo7.gif" alt="Passo 7" width="57" height="52"></div></td>
                                    <td width="9%" background="<?=base_url()?>/images/passi/passi_fine_menu.gif"><img src="<?=base_url()?>/images/passi/passo8.gif" alt="Passo 8" width="56" height="52"></td>
                                    <td width="9%" background="<?=base_url()?>/images/passi/passi_fine_menu.gif"><img src="<?=base_url()?>/images/passi/passo9.gif" alt="Passo 9" width="56" height="52"></td>
                                    <td width="28%" background="<?=base_url()?>/images/passi/passi_fine_menu.gif"><img src="<?=base_url()?>/images/passi/passo10.gif" alt="Passo 10" width="56" height="52"></td>
                            <?
                            break;
    // ....
    // И так всего десять веток.

    Реализация подсветки активного пункта меню, в индусском стиле в исполнении итальянского php-хакера.

    voice, 27 Октября 2009

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

    +130.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
    #region C++ signatures
            //long TRANS2QUIK_API __stdcall TRANS2QUIK_CONNECT (
            //    LPSTR lpstConnectionParamsString, 
            //    long* pnExtendedErrorCode, 
            //    LPSTR lpstrErrorMessage, 
            //    DWORD dwErrorMessageSize);
            #endregion
    
    
            #region connect
            [DllImport("TRANS2QUIK.DLL", EntryPoint = "_TRANS2QUIK_CONNECT@16",CallingConvention = CallingConvention.StdCall)]
            static extern long connect(string lpcstrConnectionParamsString,ref long pnExtendedErrorCode,
               byte[] lpstrErrorMessage,UInt32 dwErrorMessageSize);
            public static void connect_test(bool FinalPause)
            {
                string path = @"D:\Квики\Quik.ТХБ2007\";
                Byte[] EMsg = new Byte[50];
                UInt32 EMsgSz = 50;
                long ExtEC = 0, rez = -1;
                rez = connect(path, ref ExtEC, EMsg, EMsgSz);
                Console.WriteLine("test_q.connect_test>\t\t{0} {1} ",rez & 255, ResultToString(rez&255));
                //Console.WriteLine(" ExtEC={0}, EMsg={1}, EMsgSz={2}", (ExtEC & 255), EMsg, EMsgSz);
                if(FinalPause)Console.ReadLine();
            }
            #endregion

    Юзаем функцию написанную на C++ и возвращающую тип long. После неправильного маршалинга (в C++ long это 32 бита, а не 64) отсекаем лишние биты по AND.

    greeny, 24 Октября 2009

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

    +149.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // фикс для ie: поддержка псевдокласса hover для всех элементов
    
    $(dacumetn] riady (fucntion{}(
    
    dacument inner-html =replace [hover,'onmouseovir"}
    if dacument inner-html 
                                           ==
                      if link=this:onmauseout
    else
    };

    КРУТАААААААААААААААААААААААААААААААААААА

    fuckyounoob, 22 Октября 2009

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

    +130.6

    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
    //private byte[] dB; - строка, символ=1байт. Выше 128 - русские буквы.
    
                StringBuilder sb = new StringBuilder(len);
                for (int k = 0; k < len; k++)
                    if (dB[k] < 127)
                        sb.Append((char)dB[k]);
                    else
                    {
                        if (dB[k] != 185)
                            sb.Append((char)(dB[k] + 848)); // Преобразование в нужную кодировку.
                        else
                            sb.Append((char)8470);      // Отдельное преобразование символа №
                    }

    Преобразование строки (скорее всего в кодировке CP-1251) в юникод.
    Не знаю как сделать по-человечески. Может кто подскажет?

    greeny, 20 Октября 2009

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

    +159.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
    /******************  Fixed Header GridView  *******************/
    th, th.locked
    {
    	top:expression(parentNode.parentNode.parentNode.parentNode.scrollTop); 
    	position:relative;
    }
    
    td.locked, th.locked
    {
    	left:expression(parentNode.parentNode.parentNode.parentNode.scrollLeft);
    	font-weight:bold;
    }

    CSS+Javascript. Непередаваемые ощущение говна.

    plsc_rover, 19 Октября 2009

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

    +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
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    <?php
    /**
     * хелпер подсчитывает кол-во дней между двух дат
     */
    class ********_View_Helper_DateDiff 
    {
    	/**
    	 * из дня, месяца и года формирует время в формате кол-ва дней
    	 * @return integer
    	 */
    	protected function dateToDays($day, $month, $year)
        {
            if ($month > 2) {
                // March = 0, April = 1, ..., December = 9,
                // January = 10, February = 11
                $month -= 3;
            } else {
                $month += 9;
                --$year;
            }
    
            $hb_negativeyear = $year < 0;
            $century         = intval($year / 100);
            $year            = $year % 100;
    
            if ($hb_negativeyear) {
                return intval((14609700 * $century + ($year == 0 ? 1 : 0)) / 400) +
                       intval((1461 * $year + 1) / 4) +
                       intval((153 * $month + 2) / 5) +
                       $day + 1721118;
            } else {
                return intval(146097 * $century / 4) +
                       intval(1461 * $year / 4) +
                       intval((153 * $month + 2) / 5) +
                       $day + 1721119;
            }
        }
    	/**
    	 * высчитывает разницу между двух дат
    	 * @return integer
    	 */
    	public function dateDiff($day1,$month1,$year1,$day2,$month2,$year2) {	
    		$days1 = $this->dateToDays($day1,$month1,$year1);
    		$days2 = $this->dateToDays($day2,$month2,$year2);
    		return ($days1-$days2);
    	}
    }

    кусок самописного расширения ZF.
    про gregoriantojd() люди не знали.

    fatlazyanimal, 12 Октября 2009

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

    +74.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    else if (i == '\n')
                {
                    if (lastb != '\r')
                    {                                 
                       // imagine my joy...
                        if (!(isCrlfStream && lastb == '\n'))
                        {
                            out.write(newline);
                        }
                    }
                    else

    Довольно известная опенсорсовая библиотека bouncycatle(bcmail-jdk15-143) разбирался в подписке eMail сообщений и вот где то на вторые- третьи сутки неравной борьбы и вкуривания доки дошел до этого куска кода, комент меня убил
    ЗЫ. Библиотека и ее писатели действительно круты но видно и они устают писать нетленный код.

    tsval, 12 Октября 2009

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

    +159.4

    1. 1
    2. 2
    3. 3
    4. 4
    if (Auth_OpenID_noMathSupport()) {
            $null = null;
            return $null;
        }

    взято в PHP OpenID, модуль BigMath.php, function Auth_OpenID_getMathLib

    scanterkk, 09 Октября 2009

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

    +60

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //метод некоего класса
    IMission * startMission_ScenarioMission(tID mission_name,bool isChannelImmediate,tID P1,tID P2,tID P3,double coef_time_pickup,double coef_time_complete,double coef_reward_money,double coef_reward_rate,double coef_reward_rank,double coef_forfeit_money,double coef_forfeit_rate,double coef_forfeit_rank,double time_on_mission,bool move_time,bool needFinishPointactivator);
    
    //вызов этого же метода
    mission = startMission_ScenarioMission(CONSTANTSTRING->regString(mission_name),isStartChannelImmediate,CONSTANTSTRING->regString(p1),CONSTANTSTRING->regString(p2),CONSTANTSTRING->regStrinп(p3),coef_time_pickup,coef_time_complete,coef_reward_money,coef_reward_rate,coef_reward_rank,coef_forfeit_money,coef_forfeit_rate,coef_forfeit_rank,time_on_mission,move_time,needFinishPointactivator);

    Неслабый такой метод :)

    generalgda, 09 Октября 2009

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