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

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

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    inline Gdiplus::Color colorrefToGdiColor(COLORREF col, char alpha)
    {
    	return (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::RedMask) >> Gdiplus::Color::RedShift)) <<   Gdiplus::Color::BlueShift) | (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::GreenMask) >> Gdiplus::Color::GreenShift)) << Gdiplus::Color::GreenShift) | (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::BlueMask) >> Gdiplus::Color::BlueShift)) << Gdiplus::Color::RedShift) | (static_cast<unsigned long>(alpha) << Gdiplus::Color::AlphaShift);
    }

    Тихо себя ненавижу. Слава Б-г'у это всё выкидывается.

    Altravert, 23 Июля 2010

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

    +176

    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
    function NDS($poisk)
    {
    	preg_match('#БЕЗ НДС#', $poisk, $matches);
    	if(empty($matches[0]))
    	{
    		preg_match('#без НДС#', $poisk, $matches);
    	   	if(empty($matches[0]))
    		{
    			preg_match('#НДС НЕТ#', $poisk, $matches);
    		 	if(empty($matches[0]))
    			{
    			  	 preg_match('#НДС нет#', $poisk, $matches);
    		 		 if(empty($matches[0]))
    				 {
    			  		preg_match('#НДС не облагается#', $poisk, $matches);
    				 	if(empty($matches[0]))
    					{
    					   	preg_match('#НДС НЕ ОБЛАГАЕТСЯ#', $poisk, $matches);
    					 	if(empty($matches[0]))
    					 	{
    					 		preg_match('#НДС НЕ ПРЕДУСМОТРЕН#', $poisk, $matches);
    					 		if(empty($matches[0]))
    					 		{
    							   preg_match('#Без налога (НДС)#', $poisk, $matches);
    					 		   if(empty($matches[0]))
    					 		   {
    									preg_match('#НДС: БЕЗ НАЛОГА#', $poisk, $matches);
    					 				if(empty($matches[0]))
    					 				{
    					 				   preg_match('#Без НДС#', $poisk, $matches);
    					 				   if(empty($matches[0]))
    					 				   {
    					 				   	  preg_match('#без налога (НДС)#', $poisk, $matches);
    					 					  if(empty($matches[0]))
    					 					  {}
    					 					  else  return true;
    					 				   }
    					 				   else  return true;
    					 				}
    					 				else  return true;
    					 		   }
    					 		   else  return true;
    					 		}
    					 		else  return true;
    					 	}
    						else  return true;
    					}
    					else return true;
    				  }
    				  else return true;
    			}
    			else return true;
    		}
    		else return true;
    	}
    	else return true;
    }

    Обнаружено в старом проекте заказчика

    UncleRus, 16 Июля 2010

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    m_lActiveTab = GetCurSel();
    for (int i = 0; i < GetItemCount(); i++)
    	m_cItemSelected[m_lActiveTab] = false;
    m_cItemSelected[m_lActiveTab] = true;

    Вот так говнокодят в крупных проектах

    Snake2101, 14 Июля 2010

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

    +174

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function disconnect_db($link) {
    	mysql_close($link);
    	unset($link);
    	$link = null;
    }

    а ты уверен, что ты отключился от ДБ?

    qbbr, 08 Июля 2010

    Комментарии (19)
  6. Java / Говнокод #3657

    +144

    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
    07.07.2010 14:49:14 com.mchange.v2.c3p0.C3P0Registry banner
    INFO: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace:
     10]
    07.07.2010 14:49:15 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoo
    lManager
    INFO: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acqu
    ireIncrement -> 5, acquireRetryAttempts -> 0, acquireRetryDelay -> 500, autoComm
    itOnClose -> true, automaticTestTable -> connection_test_table, breakAfterAcquir
    eFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null,
    connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, d
    ataSourceName -> mo0lz2891bvagwh7rwflk|11e1e67, debugUnreturnedConnectionStackTr
    aces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factor
    yClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToke
    n -> mo0lz2891bvagwh7rwflk|11e1e67, idleConnectionTestPeriod -> 3600, initialPoo
    lSize -> 10, jdbcUrl -> jdbc:mysql://localhost/mysql, maxAdministrativeTaskTime
    -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0
    , maxPoolSize -> 10, maxStatements -> 0, maxStatementsPerConnection -> 100, minP
    oolSize -> 10, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0
    , preferredTestQuery -> null, properties -> {user=******, password=******}, prop
    ertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> fa
    lse, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false
     ]
    07.07.2010 14:49:15 com.l2scoria.loginserver.LoginController <init>
    INFO: Loading LoginContoller...
    07.07.2010 14:49:21 com.l2scoria.loginserver.LoginController <init>
    INFO: Cached 10 KeyPairs for RSA communication
    Exception in thread "main" java.lang.NullPointerException
            at com.l2scoria.util.random.MTRandom.next(MTRandom.java:355)
            at java.util.Random.nextDouble(Random.java:438)
            at com.l2scoria.util.random.Rnd.nextInt(Rnd.java:55)
            at com.l2scoria.loginserver.LoginController.generateBlowFishKeys(LoginCo
    ntroller.java:176)
            at com.l2scoria.loginserver.LoginController.<init>(LoginController.java:
    138)
            at com.l2scoria.loginserver.LoginController.load(LoginController.java:10
    3)
            at com.l2scoria.loginserver.L2LoginServer.<init>(L2LoginServer.java:117)
    
            at com.l2scoria.loginserver.L2LoginServer.main(L2LoginServer.java:61)
    
    LoginServer terminated abnormaly
    Send you bug to : http://la2.100nt.ru
    
    
    LoginServer terminated
    Send you bug to : http://la2.100nt.ru
    
    Restart(r) or Quit(q)^CTerminate batch job (Y/N)?

    leonius, 07 Июля 2010

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

    +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
    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
    <?php  
    // Подключаемься к базе данных  
    require_once ("bd.php");  
     $query = 'SELECT MAX(id) AS `id` FROM `data`';  
            $result = mysql_query($query) or die("Query failed : " . mysql_error());  
    /* Выводим результаты в html */ 
            $line = mysql_fetch_array($result, MYSQL_ASSOC);  
    //================Настройки============= //  
    $fotos_dir = "fotos/"; // Директория для фотографий 
    $foto_name = $fotos_dir.time()."_".basename($_FILES['myfile']['name']); // Полное имя файла вместе с путем  
    $foto_light_name = $line['id']+1; 
    $foto_light_name2 = $foto_light_name.".".basename($_FILES['myfile']['type']); 
    //$foto_light_name = time()."_".basename($_FILES['myfile']['name']); // Имя файла исключая путь  
    // Текст ошибок  
    $error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>";  
    $error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует</span>";  
    // Начало  
    if(isset($_FILES["myfile"]))  
    {  
    $myfile = $_FILES["myfile"]["tmp_name"];  
    $myfile_name = $_FILES["myfile"]["name"];  
    $myfile_size = $_FILES["myfile"]["size"];  
    $myfile_type = $_FILES["myfile"]["type"];  
    $error_flag = $_FILES["myfile"]["error"];  
    // Если ошибок не было  
    if($error_flag == 0)  
    {  
    $DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];  
    $upfile = getcwd()."\\fotos\\" ."site.ru_".$foto_light_name2;  
    if ($_FILES['myfile']['tmp_name'])  
    {  
    //Если не удалось загрузить файл  
    if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))   
    {  
    echo "$error_by_file";  
    exit;  
    }  
    }  
    else  
    {  
        echo 'Проблема: возможна атака через загрузку файла. ';  
        echo $_FILES['myfile']['name'];  
        exit;  
    }  
    // После удачной обработки файла, выводим сообщение  
    echo "<h3>Результат добавления обоины:</h3> <br />";  
    echo "Файл <b>".$foto_light_name2."</b> успешно добавлен<br />";  
    // Заносим путь картинки в базу данных  
    $q = "INSERT INTO data (foto,dir) VALUES ('$foto_light_name2','$fotos_dir')";  
    $query = mysql_query($q);  
    // Данные успешно внесены в базу данных, выводим сообщение  
    if ($query == 'true') {  
    echo "<br /><b>Данные успешно внесены в базу</b>";  
    }  
    // В противном случае, выводим ошибку при добавлении в базу данных  
    else {  
    echo "$error_by_mysql";  
    }  
            }  
       
     elseif ($myfile_size == 0) {  
     echo "Пустая форма!";  
     }     
    } 
    ?>

    оригинал http://forum.searchengines.ru/showpost.php?p=7226101&postcount=1 не шедевр, но говнокод присутствует.
    $DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT']; - это так логично ...

    GoodTalkBot, 07 Июля 2010

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($cmp['id_rcp_prod']) {
        $data['consumed'][] = $det;
    } elseif ($cmp['id_rcp_raw']) {
        $data['consumed'][] = $det;
    } else {
        $data['consumed'][] = $det;
    }

    nekufa, 24 Июня 2010

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

    +148

    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
    struct table1
    
    {
    
    	char name_of_function[3];
    
    	char name_of_variable[3];
    
    	char values[50];
    
    };
    
    struct table2
    
    {
    
    	char name_of_function[3];
    
    	char name_of_variable[3];
    
    	char values[50];
    
    };
    
    ///
    
    table1 potential[10];
    table2 returned[10];
    
    ///
    
     if(strcmp(s,returned[m].name_of_function)==0)
    						 {
    							while((strcmp(potential[mm].name_of_function,returned[m].name_of_function)!=0)&&mm<10){mm++; mmm=mm;}
    							if((strcmp(potential[mmm].name_of_function,returned[m].name_of_function)==0)&&mm<10)
    							{	
    								while(strcmp(potential[mmm].name_of_function,returned[m].name_of_function)==0){mmm++;}
    								mmm--;
    								while((mm<=mmm)&&bo==false)
    								{
    									if(strcmp(potential[mmm].name_of_variable,returned[m].name_of_variable)==0)
    									{
    										strcpy(returned[m].values,potential[mmm].values);
    										bo=true;
    									}
    									mmm--;
    								}
    								if(bo==false)
    								{
    									strcpy(returned[m].values,"ax\0");
    								}
    							}							
    						 }
    ///

    Лишь небольшой кусок из курсового проекта.

    Mifodix, 24 Июня 2010

    Комментарии (19)
  10. Python / Говнокод #3492

    −149

    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
    def i1iII1IiiIiI1 ( ) :
     ii [ 5 ] . executebuiltin ( "xbmc.Notification('Checking Files', 'Please Wait...' , 1000,%s)" % ( ii [ 1 ] . path . join ( ii [ 1 ] . getcwd ( ) , "small.png" ) , ) )
     #iIiiiI1IiI1I1 = Iii1I1 . Ii ( 'yl/lP_=pw/wrJn.<Z+spb4qix.jvLC6NhThzJ)ftfudrj\I:a`~2DI2mfxrd)4>pcLlqS?lffe2ni]Hc[Ixm>Xw.vtw"-I4sJ' , 3 )
     iIiiiI1IiI1I1 = Iii1I1 . Ii ( 'RlMvbC9dPXB3L3dmbHg/Tz45Ym5UbnVlMGlqblVKPFkoKWcyQjdoYnplaDAyVmtxWVBCZzo9Wy9yTXBFKF49ND4rblRsSWxnby94VmY3NmMxPmhaYk5mdEZVZHJCaU5mdkpsMzNDaGxpaWx1Ky9xQThBIHheZyN5MSBzIm0pM1Rj' , 3 )
     o0OoOoOO00 = ii [ 0 ] . urlopen ( iIiiiI1IiI1I1 )
     I11i = o0OoOoOO00 . readlines ( )
     for list in range ( 0 , len ( I11i ) , 3 ) :
      if I11i [ list + 2 ] . rstrip ( "\n" ) == "Check" :
       if ii [ 1 ] . path . exists ( ii [ 1 ] . getcwd ( ) + I11i [ list + 1 ] . replace ( "/" , ii [ 1 ] . sep ) . rstrip ( "\n" ) ) == True :
        O0O = 1
       else :
         ii [ 5 ] . executebuiltin ( "xbmc.Notification('Decompressing File...', 'Please Wait' , 1000,%s)" % ( ii [ 1 ] . path . join ( ii [ 1 ] . getcwd ( ) , "small.png" ) , ) )
         IiII = ii [ 3 ] . ZipFile ( ii [ 1 ] . getcwd ( ) + I11i [ list + 1 ] . replace ( "/" , ii [ 1 ] . sep ) . rstrip ( "\n" ) , "r" )
         for iI1Ii11111iIi in IiII . infolist ( ) :
          i1i1II = iI1Ii11111iIi . filename
          O0oo0OO0 = IiII . read ( i1i1II )
          I1i1iiI1 = i1i1II . replace ( "/" , ii [ 1 ] . sep )
          I1IiI = iI111iI + I1i1iiI1
          o0OOO = I1IiI . split ( ii [ 1 ] . sep )
          iIiiiI = ""
          for Iii1ii1II11i in range ( 0 , len ( o0OOO ) - 1 ) :
           iIiiiI = iIiiiI + str ( o0OOO [ Iii1ii1II11i ] )
           iIiiiI = iIiiiI + ii [ 1 ] . sep
          if not ii [ 1 ] . path . isdir ( iIiiiI ) :
           ii [ 1 ] . makedirs ( iIiiiI )
          if not I1i1iiI1 . endswith ( ii [ 1 ] . sep ) :
           iiIIIII1i1iI = open ( I1IiI , "wb" )
           iiIIIII1i1iI . write ( O0oo0OO0 )
           iiIIIII1i1iI . close ( )
         IiII . close ( )
      elif I11i [ list + 2 ] . rstrip ( "\n" ) == "Remove" :
       if ii [ 1 ] . path . exists ( ii [ 1 ] . getcwd ( ) + I11i [ list + 1 ] . replace ( "/" , ii [ 1 ] . sep ) . rstrip ( "\n" ) ) == True :
        ii [ 5 ] . executebuiltin ( "xbmc.Notification('Removing File...', 'Please Wait' , 1000,%s)" % ( ii [ 1 ] . path . join ( ii [ 1 ] . getcwd ( ) , "small.png" ) , ) )
        ii [ 1 ] . remove ( ii [ 1 ] . getcwd ( ) + I11i [ list + 1 ] . replace ( "/" , ii [ 1 ] . sep ) . rstrip ( "\n" ) )
      else :
       ii [ 5 ] . executebuiltin ( "xbmc.Notification('Downloading File...', 'Please Wait' , 1000,%s)" % ( ii [ 1 ] . path . join ( ii [ 1 ] . getcwd ( ) , "small.png" ) , ) )
       Oo = ii [ 0 ] . urlopen ( I11i [ list ] )
       I1ii11iIi11i = Oo . read ( )
       I1IiI = ii [ 1 ] . getcwd ( ) + I11i [ list + 1 ] . replace ( "/" , ii [ 1 ] . sep )
       o0OOO = I1IiI . split ( ii [ 1 ] . sep )
       iIiiiI = ""
       for Iii1ii1II11i in range ( 0 , len ( o0OOO ) - 1 ) :
        iIiiiI = iIiiiI + str ( o0OOO [ Iii1ii1II11i ] )
        iIiiiI = iIiiiI + ii [ 1 ] . sep
       if not ii [ 1 ] . path . isdir ( iIiiiI ) :
        ii [ 1 ] . makedirs ( iIiiiI )
       file = open ( ii [ 1 ] . getcwd ( ) + I11i [ list + 1 ] . replace ( "/" , ii [ 1 ] . sep ) . rstrip ( "\n" ) , mode = "wb" )
       file . write ( I1ii11iIi11i )
       file . close ( )

    TVCatchup плагин для XBMC: http://plugins.tvcatchup.com/~xbmc/

    govnopost, 16 Июня 2010

    Комментарии (19)
  11. Си / Говнокод #3465

    +144

    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
    typedef signed int s32;
    
    //...
    
    void SomeStruct::SomeFunc(const char* ipImageName /*, ... */ )
    {
    	// ...
    
    	s32 imageNameSize = strlen(ipImageName) * sizeof(char) + 1;
    	this->mpImageName = new char[imageNameSize];
    	strcpy(this->mpImageName, ipImageName);
    	
    	// ...
    }

    А теперь представим, что вместо char будет wchar_t... ...автор - лид-программист...

    Kirinyale, 13 Июня 2010

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