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

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

    +172

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    void Logger::LogString( std::string &s )
    {
    	if (s.size() > 4096) {
    		// предотвращаем слишком длиные строки в логе.
    		s.resize( 4096 );
    	}
    	m_LogStream << LogMessagePrefix() << s << std::endl;
    }

    народ пару дней понадобилось найти почему XML сообщения, размером слегка больше обычного, Xerces не принимает. идеи иссякли - пока в лог не посмотрели и не нашли вот по такому (проиллюстрированому выше) чудо принципу работающий логгер.

    Dummy00001, 10 Ноября 2010

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

    +172

    1. 1
    <td><?="ID"?>:</td>

    Пример из документации Bitrix
    http://dev.1c-bitrix.ru/api_help/main/general/admin.section/classes/cadminfilter

    Rpsl, 18 Октября 2010

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

    +172

    1. 1
    preg_match_all('/([h][t][t][p][:][\/][\/]([^\/]+)[\/][^\s">]+)[\s">]/is',$subject,$matches);

    Каждому знаку по домику!
    Регулярные премудрости или президентская программа в действии.

    Да, и с возвращением всех!!!

    Uchkuma, 07 Октября 2010

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

    +172

    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
    // подключение библиотек и конфига
    require_once($_SERVER["DOCUMENT_ROOT"]."/config.php");
    require_once($_SERVER["DOCUMENT_ROOT"]."/content/lib/tree.php");
    require_once($_SERVER["DOCUMENT_ROOT"]."/content/lib/func.php");
    extract($_GET);
    if (isset($d1)&&(f_del_date($d1)!="")) {
       $arr[0]=f_n_date($d1); // очистка первой переменной
       if (isset($d2)&&(f_del_date($d2)!="")) {
    	$arr[1]=f_n_date($d2); // очистка второй переменной
    	if (isset($d3)&&(f_del_date($d3)!="")) {
    	   $arr[2]=f_n_date($d3); // очистка третьей переменной
    	   if (isset($d4)&&(f_del_date($d4)!="")) {
    		$arr[3]=f_n_date($d4); // очистка четвертой переменной
    		if (isset($d5)&&(f_del_date($d5)!="")) {
    		   $arr[4]=f_n_date($d5); // очистка пятой переменной
    		   if (isset($d6)&&(f_del_date($d6)!="")) {
    			$arr[5]=f_n_date($d6); // очистка шестой переменной
    			if (isset($d7)&&(f_del_date($d7)!="")) {
    			   $arr[6]=f_n_date($d7); // очистка седьмой переменной
    			   if (isset($d8)&&(f_del_date($d8)!="")) {
    				$arr[7]=f_n_date($d8); // очистка восьмой переменной
    				if (isset($d9)&&(f_del_date($d9)!="")) {
    				   $arr[8]=f_n_date($d9); // очистка девятой переменной
    				   if (isset($d10)&&(f_del_date($d10)!="")) {
    					$arr[9]=f_n_date($d10); // очистка десятой переменной
    					if (isset($d11)&&(f_del_date($d11)!="")) {
    					   $arr[10]=f_n_date($d11); // очистка одинадцатой переменной
    
    					}
    				   }
    				}
    			   }
    			}
    		   }
    		}
    	   }
    	}
       }
    }

    Это чудесная CMS Black Crystal (Кристалл-чернуха), админка у нее такая же, как и сам код.

    nakham, 20 Сентября 2010

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

    +172

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $i = 1;
    while ($ip = mysql_fetch_array($result))
    {
    	$ip_end = explode(".", $ip[0]);
    	
    	if ($ip_end[3] != $i && $i < 245 && $i != 100)
    	{
    		$ip_pub = "{$mask}.$i";
    		$i = 246;
    	}
    	$i++;
    }

    Буквально на неделю отлучился, а один товарищ накрапал такую конструкцию

    Werdn, 01 Сентября 2010

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

    +172

    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
    <?
    @session_start();
    
    $fini=rand(0,9);
    
    if($fini==1){
    
    $_SESSION['idi']='ZM55PKL216';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka1.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    if($fini==2){
    
    $_SESSION['idi']='2K1P6LZ55M';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka2.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    if($fini==3){
    
    $_SESSION['idi']='LK561MP5Z2';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka3.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    if($fini==4){
    
    $_SESSION['idi']='65ZP1MLK25';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka4.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    if($fini==5){
    
    $_SESSION['idi']='552P6LM1ZK';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka5.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    if($fini==6){
    
    $_SESSION['idi']='ZP2M615LK5';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka6.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    if($fini==7){
    
    $_SESSION['idi']='KM5P2Z615L';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka7.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    if($fini==8){
    
    $_SESSION['idi']='2KP5Z16L5M';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka8.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    if($fini==9){
    
    $_SESSION['idi']='PKM15Z25L6';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka9.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    if($fini==0){
    
    $_SESSION['idi']='6ZP5L25M1K';
    
    echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka10.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
    
    ?>
    
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    
    <div style="position:absolute; top:-10px; left:25px; width: 340px; height: 49px; z-index:8;"><font size="+2" color="#333399" style="position:absolute; top:236px; left:-5px; width: 284px;">Контрольное значение для ячейки значение:</font>
    
    </div>

    Содержимое файла "kontrolnoe znachenie.php".
    Великий и ужасный "генератор капчи". Особая прелесть в том, что файл начинается с пустой строки, а потом уже идет <?@session_start(). Кто сталкивался с проблемой "Headers are already sent" поймет, поймет также почему автор наивно пытается исправить эту проблему с помощью @.
    Продолжение серии: #4101, #4100.

    SunnyMagadan, 26 Августа 2010

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

    +172

    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
    <?php 
    
    $strings = array(); 
    
    $strings[] = "10_strings_0"; 
    $strings[] = "10_strings_1x"; 
    $strings[] = "10_strings_2"; 
    $strings[] = "10_strings_3"; 
    $strings[] = "10_strings_4x"; 
    $strings[] = "10_strings_5x"; 
    $strings[] = "10_strings_6"; 
    $strings[] = "10_strings_7x"; 
    $strings[] = "10_strings_8"; 
    $strings[] = "10_strings_9"; 
    
    // СПИСОК СТРОК ИЗ 100 СТРОК В КОТОРЫХ БУДЕТ ОСУЩЕСТВЛЯТЬСЯ ПОИСК СТРОК ИЗ СПИСКА $strings 
    
        for ($counter=0; $counter<100; $counter++) 
        { 
            $check_strings[] = "10_strings_".$counter; 
        } 
    
    // Временная папка - папка со скриптом 
    
        // создание vbs файлов 
        for ($strings_c=0; $strings_c<sizeof($strings); $strings_c++) 
        { 
            $file = fopen($strings[$strings_c].'.vbs', 'w'); 
                fwrite($file, 'Set Program = Wscript.CreateObject("Wscript.Shell")'.PHP_EOL.'Program.Run("'.$strings[$strings_c].'.bat'.'")'.PHP_EOL.'Wscript.Quit'); 
                fclose($file); 
        } 
    
        // создание bat файлов 
    
    $interpreter_root = 'C:\xampp\php\php.exe'; // путь к PHP интерпретатору 
        for ($strings_c=0; $strings_c<sizeof($strings); $strings_c++) 
        { 
            $file = fopen($strings[$strings_c].'.bat', 'w'); 
            fwrite($file, $interpreter_root.' '.$strings[$strings_c].'.php'); 
            fclose($file); 
        } 
    
    // создание php файлов 
    for ($strings_c=0; $strings_c<sizeof($strings); $strings_c++)   { 
    $code = '<?php 
    $string = \''.$strings[$strings_c].'\'; // строка для проверки, в каждом экземпляре своя 
        for ($counter=0; $counter<100; $counter++) 
        { 
            $check_strings[] = "10_strings_".$counter; 
        } 
    
        shuffle($check_strings); 
    
        $ok = false; 
    
        for ($check_strings_c=0; $check_strings_c<sizeof($check_strings); $check_strings_c++) 
        { 
            if ($string == $check_strings[$check_strings_c]) 
            { 
                $ok = true; 
                break; 
            } 
        } 
    
        if ($ok == true) 
        { 
            $file = fopen("'.$strings[$strings_c].'_ok.txt", "w"); 
            fclose($file); 
        } 
    ?>'; 
    
    $file = fopen($strings[$strings_c].'.php', 'w'); 
    fwrite($file, $code);

    многопоточность на PHP

    exciter, 25 Августа 2010

    Комментарии (99)
  9. JavaScript / Говнокод #3745

    +172

    1. 1
    function getCodeByCode(code)

    хорошее название функции

    mozg_raka, 20 Июля 2010

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

    +172

    1. 1
    map<pair<pair<int,int>, int>, vector<pair<pair<int,int>, pair<int,int> > > > m;

    великолепно потом пробегать по коллекции

    MAK, 19 Июля 2010

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

    +172

    1. 1
    <script type="text/javascript" src='/wps/CacheProxyServlet/colorPalette/default/browserVendor/Netscape/browserName/Navigator/browserVersion/unknown/locale/ru/forwardurl/wps/themes/html/pgu/./js.jsp'></script>

    с сайта http://portal.rosreestr.ru

    Serebro, 19 Июля 2010

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