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

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

    +112

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    DirectoryInfo dir = new DirectoryInfo(@"C:\Users\origLocation\");
    DirectoryInfo destDir = new DirectoryInfo(@"C:\Users\origLocation\destLocation\");
    FileInfo[] newVerFiles = dir.GetFiles("*.TXT");
    foreach (FileInfo newVerFile in newVerFiles)
    {
        Regex regex = new Regex("\\d+-new-ver.TXT", RegexOptions.IgnoreCase);
        if (regex.IsMatch(newVerFile.Name))
        {
            newVerFile.MoveTo(destDir.FullName);
        }
     }

    rusco_developer, 02 Марта 2011

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

    +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
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    if (isset ($_POST['SendAuthForm'])) {   
    	//массив ошибок
    	$AuthError = array ();
    	
    	if (!isset ($_POST['AuthLogin']) || $_POST['AuthLogin'] == '' || !isset ($_POST['AuthPass']) || $_POST['AuthPass'] == '') {
    		$AuthError[] = $ForumLang['AuthErrors']['WrongLoginPass'];
    	}
    	else {
    		$AuthLogin = trim ($_POST['AuthLogin']);
    		$AuthPass  = trim ($_POST['AuthPass']);
    		$CheckUserValid = 0;	    
    		//проверка логина-пароля
    		$SQLCheckAuth = 'SELECT UserID, UserPassword, UserMail, GroupID
    						 FROM users
    						 WHERE UserLogin = \'' . Defence_EscapeString ($DBType, $AuthLogin) . '\'';
    		$CheckAuthQuery = DB_Query ($DBType, $SQLCheckAuth, $ForumConnection);
    		if (!$CheckAuthQuery) {		 
    			exit ('Error while checking auth data!');
    		}
    		$UserExists = DB_NumRows ($DBType, $CheckAuthQuery);
    		if ($UserExists == 0) {
    			$CheckUserValid++;		      
    		}	       
    		//массив		
    		$UserRow = DB_FetchAssoc ($DBType, $CheckAuthQuery);
    	 //данные		
    		$UserPass = $UserRow['UserPassword'];
    		$UserID   = intval ($UserRow['UserID']);
    		$UserMail = $UserRow['UserMail'];
    		$GroupID  = intval ($UserRow['GroupID']);
    		if (Main_Crypt ($AuthPass) <> $UserPass) {
    			$CheckUserValid++;
    		}
    		if ($CheckUserValid > 0) {
    			$AuthError[] = $ForumLang['AuthErrors']['WrongLoginPass'];
    		}
    		else {
    			//удаление из гостей
    			$SQLDelFromGuests = 'DELETE FROM guest_activity
    								 WHERE SessionID=\'' . $SessionID . '\'';
    			$DelFromGuestsQuery = DB_Query ($DBType, $SQLDelFromGuests, $ForumConnection);
    			if (!$DelFromGuestsQuery) {		     
    				exit ('Error while deleting user from guest table!');
    			}		       
    			//редактирование таблицы пользователя
    			$CurAction = 'main_page';
    			$SQLUpdateUser = 'UPDATE user_activity
    					  SET UserLastLogin=\'' . $Now . '\', UserLastAction=\'' . $CurAction . '\', UserIsOnline=\'yes\'
    							  WHERE UserID=\'' . $UserID . '\'';
    			$UpdateUserQuery = DB_Query ($DBType, $SQLUpdateUser, $ForumConnection);
    			if (!$UpdateUserQuery) {			
    				exit ('Error while updating user status onto \'yes\'!');
    			}
    			//регенерация ид сессии		 
    			session_regenerate_id (TRUE);
    			$SecureString = '';		     
    			//ip пользователя
    			$CurUserIP = $_SERVER['REMOTE_ADDR'];
    			$IPArray = explode ('.', $CurUserIP);
    			$IPRanks = array ();
    			for ($i=0; $i < $NumIPRanks; $i++) {
    				$IPRanks[] = $IPArray[$i];
    			}
    			$IPFinalString = implode ('.', $IPRanks);
    			$IPFinalString = sha1 ($IPFinalString . $AuthSalt);
    			//user-agent
    			$CurUserAgent = $_SERVER['HTTP_USER_AGENT']; 
    			$CurUserAgent = substr ($CurUserAgent, 0, 50); 
    			$CurUserAgent = sha1 ($CurUserAgent . $AuthSalt); 
    			//объединение
    			$SecureString = sha1 ($IPFinalString . $CurUserAgent . $AuthSalt);
    			//случайная строка - хеш
    			$RandomString = Main_GenerateRandString (10, '1');
    			$RandomString = sha1 ($RandomString . $AuthSalt . time ());
    		//данные в сессию
    			unset ($_SESSION['UserData']);
    			$_SESSION['UserData'] = array ();
    			$_SESSION['UserData']['UserType'] = 'member';
    			$_SESSION['UserData']['UserID']   = $UserID;
    			$_SESSION['UserData']['UserName'] = $AuthLogin;
    			$_SESSION['UserData']['GroupID']  = $GroupID;
    			$_SESSION['UserData'][$SecureKey] = $SecureString;
    			$_SESSION['UserData'][$SecureCookieName] = $RandomString;
    			//куки
    			setcookie($SecureCookieName,$RandomString);
    			//перенаправление
    			$_SESSION['Message'] = 'auth_sucess';
    			$URL = '?action=message';
    			Header('Location:' . $SelfName . $URL);
    			exit ();
    		}
    	}       
    	//проверка
    }

    qbasic, 23 Февраля 2011

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

    −124

    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
    sub check_dir
    {
    	my ($param, $mode) = @_;
    	$mode ||= 'sr';
    
    	unless ( $mode eq 'sc')
    	{
    		my $full_path = $config_params{$param};
    		$full_path =~ /^(.+)\/(.+)$/;
    		my $put = $1;
    
    		while(1)
    		{
    			if (-l $full_path)
    			{
    				$info->debug("Load param $param = $full_path it is symlink. Readlink...");
    				$full_path = readlink $full_path;
    			}
    			elsif (-d $full_path or -d "$put/$full_path")
    			{
    				$info->debug("Load param $param = $full_path. It is directory and it is exists");
    				last;
    			}
    			else
    			{
    				$warning->debug("Not valid config. Error parsing param: $param");
    				exit 1;
    			}
    		}
    	}
    	else
    	{
    		my $full_path = $config_params_sc{$param};
    		$full_path =~ /^(.+)\/(.+)$/;
    		my $put = $1;
    
    		while(1)
    		{
    			if (-l $full_path)
    			{
    				$info_sc->debug("Load param $param = $full_path it is symlink. Readlink...");
    				$full_path = readlink $full_path;
    			}
    			elsif (-d $full_path or -d "$put/$full_path")
    			{
    				$info_sc->debug("Load param $param = $full_path. It is directory and it is exists");
    				last;
    			}
    			else
    			{
    				$warning_sc->debug("Not valid config. Error parsing param: $param");
    				exit 1;
    			}
    		}
    	}
    }

    По крайней мере, этот код можно сократить вдвое... И подобное по всей утилите...

    SadKo, 21 Февраля 2011

    Комментарии (2)
  5. ActionScript / Говнокод #5729

    −231

    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
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    private function generateEvent(type:String, data:Object):TcpEvent
    {
    	var resultEvent : TcpEvent;
    	switch(type)
    	{
    		case TcpEvent.CALL_STARTED:
    			if (data.callType == "1")
    				resultEvent = new TcpEvent(TcpEvent.RANDOM_CALL_STARTED, data);
    			else
    				resultEvent = new TcpEvent(TcpEvent.CALL_STARTED, data);
    			break
    		case TcpEvent.CALL_RECEIVED:
    			resultEvent = new TcpEvent(TcpEvent.CALL_RECEIVED, data);
    			break
    		case TcpEvent.CALL_CANCELED:
    			resultEvent = new TcpEvent(TcpEvent.CALL_CANCELED, data);
    			break
    		case TcpEvent.CALL_REJECTED:
    			resultEvent = new TcpEvent(TcpEvent.CALL_REJECTED, data);
    			break
    		case TcpEvent.CALL_ENDED:
    			resultEvent = new TcpEvent(TcpEvent.CALL_ENDED, data);
    			break
    		case TcpEvent.CALL_ERROR:
    			resultEvent = new TcpEvent(TcpEvent.CALL_ERROR, data);
    			break
    		case TcpEvent.LOCK_SUCCEEDED:
    			resultEvent = new TcpEvent(TcpEvent.LOCK_SUCCEEDED, data);
    			break
    		case TcpEvent.LOCK_FAILED:
    			resultEvent = new TcpEvent(TcpEvent.LOCK_FAILED, data);
    			break	
    		case TcpEvent.RECEIVE_ACTION:
    			resultEvent = new TcpEvent(TcpEvent.RECEIVE_ACTION, data);
    			break
    		case TcpEvent.RECEIVE_MESSAGE:
    			resultEvent = new TcpEvent(TcpEvent.RECEIVE_MESSAGE, data);
    			break
    		case TcpEvent.RECEIVE_PONG:
    			resultEvent = new TcpEvent(TcpEvent.RECEIVE_PONG, data);
    			break
    		case TcpEvent.SET_MODE:
    			resultEvent = new TcpEvent(TcpEvent.SET_MODE, data);
    			break
    		case TcpEvent.SET_BALANCE:
    			resultEvent = new TcpEvent(TcpEvent.SET_BALANCE, data);
    			break
    		case TcpEvent.SET_STOKEN:
    			resultEvent = new TcpEvent(TcpEvent.SET_STOKEN, data);
    			break
    		case TcpEvent.SET_TIMESTAMP:
    			resultEvent = new TcpEvent(TcpEvent.SET_TIMESTAMP, data);
    			break
    		case TcpEvent.ADD_TO_RANDOM_ROUNDERS_OK:
    			resultEvent = new TcpEvent(TcpEvent.ADD_TO_RANDOM_ROUNDERS_OK, data);
    			break
    		case TcpEvent.REMOVE_FROM_RANDOM_ROUNDERS_OK:
    			resultEvent = new TcpEvent(TcpEvent.REMOVE_FROM_RANDOM_ROUNDERS_OK, data);
    			break
    		case TcpEvent.TCP_ADD_TO_RANDOM_ROUNDERS_ERROR:
    			resultEvent = new TcpEvent(TcpEvent.TCP_ADD_TO_RANDOM_ROUNDERS_ERROR, data);
    			break;
    		case TcpEvent.TCP_GET_NEXT_RANDOM_ROUNDER_ERROR:
    			resultEvent = new TcpEvent(TcpEvent.TCP_GET_NEXT_RANDOM_ROUNDER_ERROR, data);
    			break;
    		case TcpEvent.GET_CLIENT_PARAM:
    			resultEvent = new TcpEvent(TcpEvent.GET_CLIENT_PARAM, data);
    			break;
    		case TcpEvent.SET_WEB_SESSION_ID:
    			resultEvent = new TcpEvent(TcpEvent.SET_WEB_SESSION_ID, data);
    			break;
    		case TcpEvent.SEND_ACTION_ERROR:
    			resultEvent = new TcpEvent(TcpEvent.SEND_ACTION_ERROR, data);
    			break;
    		case TcpEvent.SEND_MESSAGE_ERROR:
    			resultEvent = new TcpEvent(TcpEvent.SEND_MESSAGE_ERROR, data);
    			break;			
    		case TcpEvent.STOP_RECONNECTION:
    			resultEvent = new TcpEvent(TcpEvent.STOP_RECONNECTION, data);
    			stopReconnection();
    			break;	
    		default:
    			break;
    	}
    	return resultEvent;			
    }

    Человеку платаят не построчно, и даже не по часам. Оклад.

    wvxvw, 20 Февраля 2011

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

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private void image_hide_show(object sender, EventArgs e)
            {
                for(int i = 0; i < Controls.Count; i++)
                    if ((sender as PictureBox).Name + "_img" == Controls[i].Name) Controls[i].Visible = !Controls[i].Visible;
            }

    Мартин, 20 Февраля 2011

    Комментарии (2)
  7. ActionScript / Говнокод #5714

    −253

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    addChild(contentHolder);
    
    var depthIndex:int = getChildIndex(contentHolder);
    setChildIndex(prevBtn, depthIndex);
    setChildIndex(cpcounter, depthIndex);
    setChildIndex(nextBtn, depthIndex);

    as3, говно-проект, код под названием "а я нихера не верю, шо addChild кладет на самый верх!" или "кручу верчу на*бать хочу"

    predi, 18 Февраля 2011

    Комментарии (2)
  8. Куча / Говнокод #5706

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <font color="#FF0000">
    	Срок работы пробной версии продукта истек.
    	Через две недели этот сайт полностью прекратит свою работу.
    	Вы можете купить полнофункциональную версию продукта на сайте 
    	<a href="http://www.1c-bitrix.ru/?r1=bsm7trial&amp;r2=expiried">
    		www.1c-bitrix.ru
    	</a>.
    </font>

    чуваки так заняты организацией, что как то забыли прикупить лицензию
    http://www.cloudconf.ru/msk2011/

    zlob.jc, 17 Февраля 2011

    Комментарии (2)
  9. PHP / Говнокод #5686

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $this->setLayout('empty');
            $this->setTemplate('step3');
    
            if ($this->getBrokerId() == 19 || $this->getBrokerId() == 29)
            {
                $this->setLayout('empty');
                $this->setTemplate('step3');
                $this->brokerId = $this->getBrokerId();
            }

    Нашел в чужом проекте. При этом $this->getBrokerId() не просто возвращает переменную, а производит сравнение строк (то есть вызывать этот метод 3 раза - явный перебор).

    blaster999, 15 Февраля 2011

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

    +115

    1. 1
    2. 2
    3. 3
    4. 4
    ViewData["PlanActivated"] = ((model.Count > 0) && (model.First().PlanActivate == true) 
                     && (model.First().PredictActivate == true) 
                     && (model.First().FactActivate == true)) 
                     ? true : false;

    Даже не стал разбираться, стер и переписал....

    fr0mrus, 15 Февраля 2011

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

    +165

    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
    class cSG5DataException ... {
        cSG5DataException(CTstatus Status, CTsymbol Error,
                          CTsymbol SubError, std::string Description, ...)
       {
         /* форматирование сообщения */
       }
       /* виртуальный деструктор наличиствует */
    };
    
    class cExcKVSDuplicateKey : public cSG5DataException  {
     /* пусто */
    };
    
    /* код */
    
        throw (cExcKVSDuplicateKey*) new cSG5DataException( CT_statusFail,
                                                            CT_errorObjectExists,
                                                            CT_errorObjectExists,
         "cKVSet_STL_map::insert( CTint k, Value& v ), %d is already in the map",k);

    вот так хитро народ обходит проблему писания конструкторов. темплейт фактори функцию сделать не догадались. но С-style конверсию типов - пожалуйста. мне честно говоря и сложно то себе представить что это как-то работать может. смена типа поинтера то на тип объекта не влияет.

    Dummy00001, 14 Февраля 2011

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