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

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $price = 'Sold!!!';
    if ( $row['mail_sent'] != 1 ) {
    	$price = 'Price: <span style="color:#bb6600;font-weight:bold;"> '.$row['price'].' </span> Euro';
    }
    echo '<br />';
    printf ('%s',$price);
    echo '<br />';

    Паранойя?

    cephuo, 22 Сентября 2011

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

    +160

    1. 1
    http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-835T

    Часовая презентация Герб Саттера о будущем C++.
    От себя хочется добавить: "Где здесь С++, Герб Саттер?"

    CPPGovno, 22 Сентября 2011

    Комментарии (113)
  4. JavaScript / Говнокод #7871

    +160

    1. 1
    2. 2
    3. 3
    window.alert = function(){
            events.event(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);
        }

    И это - в продакшене. Писано - для военных

    Teddy_Brown, 15 Сентября 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function Hehe ($s) {
        $str = $s;
        $str = preg_replace ("/\\\/","", $str);
        $str = preg_replace ("/'/","&#39", $str);
        $str = preg_replace ("/\n/","<br>", $str);
        $str = preg_replace ("/\r/","", $str);
        return $str;
    }

    Название функции оригинальное. Лежала в модуле ~5k строк.

    Enjoy, 14 Сентября 2011

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

    +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
    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
    $id = $_POST['id'];
    //$id = 194;
    $temp = $id;
    $str = "";
    for ( $incr = 0; $incr < 100; $incr++ ) {
    	$result = $dbs -> query("SELECT * FROM 
    								market_categs 
    							WHERE 
    								categid={$temp} AND 
    								published = 1 AND 
    								status = 1");
    	if ( mysql_num_rows($result) > 0 ) {
    		$categ = mysql_fetch_array($result);
    		$result2 = $dbs -> query("SELECT * FROM 
    									market_categs_trans 
    								WHERE 
    									categid={$categ[categid]}");
    		$categ_title = mysql_fetch_array( $result2 );
    		$str2 = "";
    		$temp2 = $categ[categid];
    		for ( $incr2 = 0; $incr2 < 100; $incr2++ ) {
    			$result3 = $dbs -> query("SELECT * FROM 
    										market_categs 
    									WHERE 
    										categid={$temp2} AND 
    										published = 1 AND 
    										status = 1");
    			if ( mysql_num_rows($result3) > 0 ) {
    				$categ2 = mysql_fetch_array($result3);
    				$str2 .= "/".$categ2[url];
    				$temp2 = $categ2[parent];
    			}
    		}
    		$str2 = substr($str2,1);
    		$nb2 = substr_count($str2,"/");
    		$temp_str2 = explode ("/",$str2);
    		$str2 = "";
    		$back = "";
    		for ($i2 = $nb2; $i2 >= 0; $i2--) {
    			$str2 .="/".$temp_str2[$nb2];
    			$nb2--;
    		}
    		$str .= " / <a href='/".substr($str2,1)."'>".$categ_title[title]."</a>";
    		$temp = $categ[parent];
    	}
    }

    Рекурсия... мать его

    cephuo, 12 Сентября 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    uint64_t search(StringList& who, const string& aName, const string& aSize,TypeModes aTypeMode, SizeModes aSizeMode, const string& aToken, const StringList& aExtList, void* aOwner = NULL) 
    {
        return search(who, aName, Util::toInt64(aSize), aTypeMode, aSizeMode, aToken, aExtList,aOwner);
    }

    А теперь небольшой _опрос_ :
    Каково, по вашему мнению, необходимое и достаточное
    качество и количество параметров метода/функции, при котором необходимо(по самым разным причинам) объединять их(параметры) в _меньшее_количество_ , используя встроенные/пользовательские типы данных.
    Например: https://github.com/negativ/eiskaltdcpp/blob/master/dcpp/SearchManager.h

    sayidandrtfm, 10 Сентября 2011

    Комментарии (63)
  8. C++ / Говнокод #7818

    +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
    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
    78. 78
    79. 79
    80. 80
    81. 81
    HRESULT GetOutlookVersionString(LPSTR* ppszVer, BOOL* pf64Bit)
    {
        HRESULT hr = E_FAIL;
        LPSTR pszTempPath = NULL;
        LPSTR pszTempVer = NULL;
        TCHAR pszaOutlookQualifiedComponents[][MAX_PATH] = {
            TEXT("{1E77DE88-BCAB-4C37-B9E5-073AF52DFD7A}"), // Outlook 2010
            TEXT("{24AAE126-0911-478F-A019-07B875EB9996}"), // Outlook 2007
            TEXT("{BC174BAD-2F53-4855-A1D5-0D575C19B1EA}")  // Outlook 2003
        };
    
        int nOutlookQualifiedComponents = _countof(pszaOutlookQualifiedComponents);
        int i = 0;
        DWORD dwValueBuf = 0;
        UINT ret = 0;
    
        *pf64Bit = FALSE;
    
        for (i = 0; i < nOutlookQualifiedComponents; i++)
        {
            ret = MsiProvideQualifiedComponent(
                pszaOutlookQualifiedComponents[i],
                TEXT("outlook.x64.exe"),
                (DWORD) INSTALLMODE_DEFAULT,
                NULL,
                &dwValueBuf);
            if (ERROR_SUCCESS == ret) break;
        }
    
        if (ret != ERROR_SUCCESS)
        {
            ret = MsiProvideQualifiedComponent(
                pszaOutlookQualifiedComponents[i],
                TEXT("outlook.exe"),
                (DWORD) INSTALLMODE_DEFAULT,
                NULL,
                &dwValueBuf);
        }
        else
        {
            *pf64Bit = TRUE;
        }
    
        if (ret == ERROR_SUCCESS)
        {
            dwValueBuf += 1;
            pszTempPath = (LPSTR) malloc(dwValueBuf * sizeof(TCHAR));
    
            if (pszTempPath != NULL)
            {
                if ((ret = MsiProvideQualifiedComponent(
                    pszaOutlookQualifiedComponents[i],
                    TEXT("outlook.exe"),
                    (DWORD) INSTALLMODE_EXISTING,
                    pszTempPath,
                    &dwValueBuf)) != ERROR_SUCCESS)
                {
                    goto Error;
                }
    
                pszTempVer = (LPSTR) malloc(MAX_PATH * sizeof(TCHAR));
                dwValueBuf = MAX_PATH;
                if ((ret = MsiGetFileVersion(pszTempPath,
                    pszTempVer,
                    &dwValueBuf,
                    NULL,
                    NULL))!= ERROR_SUCCESS)
                {
                    goto Error;    
                }
                *ppszVer = pszTempVer;
                pszTempVer = NULL;
                hr = S_OK;
            }
        }
    
    Error:
        free(pszTempVer);
        free(pszTempPath);
        return hr;
    }

    Говнокод от САМОГО Билли... 21 век на дворе, а у нас в C++ коде goto Error написано (точнее - накакано).
    Источник - http://msdn.microsoft.com/en-us/library/dd941331.aspx

    kVolt, 09 Сентября 2011

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

    +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
    function addParam(iId)
    {   
        var sData = '';
    
        //Контрольная работа
        if (iId==1) 
            sData = '';
        // Реферат
        else if (iId==2) 
            sData = '';
        // Курсовая
        else if (iId==3) 
            sData = '';
        // Решение задач
        else if (iId==4) 
            sData = '';
        else {
            $('#addParam').hide().html('');
            return false;
        }
        
        $('#addParam').html('').append('<td colspan="2">'+sData+'</td>').show();
    }

    lot's of code, govnocode, govnocode, govnocode...

    kaspvar, 02 Сентября 2011

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

    +160

    1. 1
    typedef _My unsigned int UINT_PTR, *PUINT_PTR;

    Говногость, 17 Августа 2011

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

    +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
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    /**
    	 * Заменяет все вхождения короткого тега <param/> на длиную версию <param></param>
    	 * Заменяет все вхождения короткого тега <embed/> на длиную версию <embed></embed>
    	 * 
    	 */
    	protected function FlashParamParser($sText) {	
    		if (preg_match_all("@(<\s*param\s*name\s*=\s*\".*\"\s*value\s*=\s*\".*\")\s*/?\s*>(?!</param>)@Ui",$sText,$aMatch)) {				
    			foreach ($aMatch[1] as $key => $str) {
    				$str_new=$str.'></param>';				
    				$sText=str_replace($aMatch[0][$key],$str_new,$sText);				
    			}	
    		}
    		if (preg_match_all("@(<\s*embed\s*.*)\s*/?\s*>(?!</embed>)@Ui",$sText,$aMatch)) {				
    			foreach ($aMatch[1] as $key => $str) {
    				$str_new=$str.'></embed>';				
    				$sText=str_replace($aMatch[0][$key],$str_new,$sText);				
    			}	
    		}	
    		/**
    		 * Удаляем все <param name="wmode" value="*"></param>		 
    		 */
    		if (preg_match_all("@(<param\s.*name=\"wmode\".*>\s*</param>)@Ui",$sText,$aMatch)) {
    			foreach ($aMatch[1] as $key => $str) {
    				$sText=str_replace($aMatch[0][$key],'',$sText);
    			}
    		}
    		/**
    		 * А теперь после <object> добавляем <param name="wmode" value="opaque"></param>
    		 * Решение не фантан, но главное работает :)
    		 */
    		if (preg_match_all("@(<object\s.*>)@Ui",$sText,$aMatch)) {
    			foreach ($aMatch[1] as $key => $str) {
    				$sText=str_replace($aMatch[0][$key],$aMatch[0][$key].'<param name="wmode" value="opaque"></param>',$sText);
    			}
    		}
    		
    		return $sText;
    	}

    DrFreez, 16 Августа 2011

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