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

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

    +157

    1. 1
    if(!$model->sourse->access->firstname == 1)

    $model->sourse->access->firstname - либо 0, либо 1... Нужно просто иногда высыпаться :(

    VasyOk, 21 Февраля 2011

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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <?php
    //////////
    static function AddKeyDis($meta_key,$meta_dis=null){
    	   if(is_array($meta_key)){
                                   return self::$result=array("meta_key"=>$meta_key['meta_key'],"meta_dis"=>$meta_key['meta_dis']);
    	   }elseif($meta_dis!==null){
    	             return self::$result=array("meta_key"=>$meta_key,"meta_dis"=>$meta_dis);
    	   }
    	   return null;
       }
    //////////
    ?>

    эх =)

    Zho, 09 Февраля 2011

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

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ($this->Session->check('_userJustRegistered')) {
    	switch (($tmpJR = $this->Session->read('_userJustRegistered'))) {
    		case 'confirmed':
    			$this->Session->delete('_userJustRegistered');
    			break;
    		case 'not_confirmed_first':
    			$this->Session->write('_userJustRegistered', 'not_confirmed');
    			break;
    	}
    }

    Кусочек многоступенчатой системы по определению статуса юзера.

    quall, 08 Февраля 2011

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

    +180

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    ...
    #define EXT12 	//Не комментировать эту директиву. Иначе не работает.
    ...
    #define EXT34 	//Эта директива почти не используется. Может перерефакторим без неё?
    		//Ну убирай.
    		//Давай ты.
    		//Там есть пару мест, где она используется. Поэтому я не хочу.
    		//Но ведь нужно. Эти директивы можно заменить на полиморфизм классов.
    		//Ну займись. Я не хочу. Вдруг сломается.
    ...

    У нас 2 человека работают над одной веткой проекта на С++. Люди работают в отделах на разных этажах (один на этаж выше другого). Им лень сходить друг к другу или поговорить по жаберу. Я уже как полгода наблюдаю за картиной: они переговариваются через комментарии в коде через систему контроля версий. Я не против переговоров в системе контроля версий, но они уже месяц осбуждают EXT34, а так ничего с ним и не сделали. Хоть бы комментарии удалили, если делать ничего не собираюются. Может с них 0.125 премии снять?
    Как-нибудь ещё переговоры повеселее выложу.

    Говногость, 08 Февраля 2011

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

    +163

    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
    function IndexDownloadsAddVote()
    {
    	global $db, $config, $site, $user;
    	
    	$ip = getip();
    	$file = SafeEnv($_GET['file'], 11, int); // ид файла
    	$cat = SafeEnv($_GET['cat'], 11, int); // категория
    	$vote = SafeEnv($_POST['vote'], 1, int); // голос
    
    	$site->OtherMeta .= '<meta http-equiv="REFRESH" content="2; URL=index.php?name=downloads&amp;op=full&amp;cat='.$cat.'&amp;file='.$file.'">';
    
    	$where = "`id`='$file' and `active`='1'"; // where для downloads
    	$ex_where = GetWhereByAccess('view'); // видимость
    
    	if($ex_where != ''){
    		$where .= ' and ('.$ex_where.')';
    	}
    
    	$db->Select('downloads', $where); // ищем файл
    
    	if($db->NumRows() > 0){ // существует ли файл
    		$dfile = $db->FetchRow(); // пищем файл в переменную
    		if($dfile['allow_votes']=='1'){ // оценки разрешены
    			if($user->Auth) {
    				$where = "`user_id` = '".$user->Get('u_id')."'";
    			} else {
    				$where = "`ip` = '".$ip."'";
    			}
    
    			$db->Select('downloads_rating', $where); // Делаем запрос
    
    			if($vote==0){
    				$site->AddTextBox('','<center>Вы не выбрали оценку.<br /><br /><a href="javascript:history.go(-1)">Назад</a></center>');
    			} else {
    
    				$user->ChargePoints($config['points']['download_rating']);
    
    				$time = time();
    
    				if($db->NumRows()>0) {
    					$db->Update('downloads_rating', "`vote` = '$vote'", "(`user_id` = '".($user->Auth ? $user->Get('u_id') : 0)."' or `ip` = '$ip') and `downid` = '$file'");
    					
    					$numvotes = SafeDB($dfile['votes_amount'],11,int);
    				} else {
    					$db->Insert('downloads_rating',"'','$file','$ip','$time','$vote','".($user->Auth ? $user->Get('u_id') : 0)."'");
    					
    					$numvotes = SafeDB($dfile['votes_amount'],11,int)+1;
    				}
    				$vote = SafeDB($dfile['votes'],11,int)+$vote;
    				$db->Update('downloads',"votes_amount='$numvotes',votes='$vote'","`id`='$file'");
    				$site->AddTextBox('','<center>Спасибо за вашу оценку.<br><br><a href="javascript:history.go(-1)">Назад</a></center>');
    			}
    		}else{
    		//Оценка запрещена
    		$site->AddTextBox('','<center>Извините, оценка этого файла запрещена.<br><br><a href="javascript:history.go(-1)">Назад</a></center>');
    		}
    	}else{
    	//Файл не существует
    	$site->AddTextBox('','<center>Произошла ошибка. Файл, который вы пытаетесь оценить, не найден в нашем файловом архиве. Возможно он был удален.<br><br><a href="javascript:history.go(-1)">Назад</a></center>');
    	}
    }

    Функция оценки файла из русской CMS

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

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

    +164

    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
    if ((AnalysisType == 0) || (!m_UseExtraInfo)) {
    	o1 = o2 = -1;
    	do {
    		fseek(F, o1, SEEK_END); Buf[0] = fgetc(F);
    		if ((Buf[0] == 0xFF) || ((Buf[0] == 0x7F) && (AnalysisType == 0))) {
    			o2 = o1; o1--; FFcnt = 1;
    			do {
    				fseek(F, o1, SEEK_END); Buf[0] = fgetc(F);
    				if ((Buf[0] == 0xFF) || ((Buf[0] == 0x7F) && (AnalysisType == 0)))
    					FFcnt++;
    				o1--;
    			}
    			while ((Buf[0] == 0xFF) || ((Buf[0] == 0x7F) && (AnalysisType == 0)));
    			if ((FFcnt == 71) || (FFcnt == 73)) PosTavern = o2;
    			if ((PosCheater == -1) && (FFcnt > 50)) {
    				PosCheater = o2; fseek(F, o2, SEEK_END);
    				do {
    					Buf[0] = fgetc(F);
    					if (Buf[0] != 0x00) PosCheater++;
    				}
    				while (Buf[0] != 0x00);
    			}
    		}
    		else o1--;
    	}	
    	while ((o1 > -sz) &&
    		   (((AnalysisType == 1) && (PosTavern ==  -1)) ||
    		    ((AnalysisType == 0) && (PosCheater == -1))));
    }
    else {
    	o1 = o2 = -200;
    	oFFcnt = -1;
    	do {
    		fseek(F, o1, SEEK_END);
    		Buf[0] = fgetc(F); Buf[1] = fgetc(F);
    		if ((Buf[0] == HL) && (Buf[1] == HR)) {
    			o2 = o1 + 86;
    			FFcnt = 0;
    			do {
    				fseek(F, o2, SEEK_END);
    				Buf[0] = fgetc(F);
    				if (Buf[0] == 0xFF) {
    					FFcnt++; o2--;
    				}
    			}
    			while (Buf[0] == 0xFF);
    			if ((oFFcnt == -1) || (abs(72 - FFcnt) < abs(72 - oFFcnt))) {
    				PosTavern = o1; oFFcnt = FFcnt;
    			}
    		}
    		o1--;
    	}
    	while (o1 > -sz);
    	if (PosTavern != -1)
    		PosTavern = PosTavern + 86 + 0x91 * (7 - PN);
    
    	if (m_ChangeHeroes && ((HL_new >= 0) || (HR_new >= 0))) {
    		o1 = o2 = -1;
    		do {
    			fseek(F, o1, SEEK_END); Buf[0] = fgetc(F);
    			if ((Buf[0] == 0xFF) || (Buf[0] == 0x7F)) {
    				o2 = o1; o1--; FFcnt = 1;
    				do {
    					fseek(F, o1, SEEK_END); Buf[0] = fgetc(F);
    					if ((Buf[0] == 0xFF) || (Buf[0] == 0x7F)) FFcnt++;
    					o1--;
    				}
    				while ((Buf[0] == 0xFF) || (Buf[0] == 0x7F));
    				if (FFcnt > 50) {
    					PosCheater = o2; fseek(F, o2, SEEK_END);
    					do {
    						Buf[0] = fgetc(F);
    						if (Buf[0] != 0x00) PosCheater++;
    					}
    					while (Buf[0] != 0x00);
    				}
    			}
    			else o1--;
    		}	
    		while ((o1 > -sz) && (PosCheater == -1));
    	}
    }

    Кустарно-мистический анализатор сейвов для Героев 3.
    Так я писал пять с половиной лет назад...

    Kirinyale, 05 Февраля 2011

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

    +169

    1. 1
    2. 2
    $base = dirname(dirname(dirname(dirname(dirname(dirname(__FILE__))))));
            $base .= '/public' . Zend_Registry::get('Theme')->getThemeBase().'/static/images/menu/';

    Поиск пути... :)

    kovel, 02 Февраля 2011

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

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <?
    function dbQuery($query)
    {
    	$arg = func_get_args();
    	unset($arg[0]);
    	for ($i=1; $i<sizeof($arg); $i++) {
    		$arg[$i] = mysql_real_escape_string($arg[$i]);
    	}
    	$sql = vsprintf($query, $arg);
    	return mysql_query($sql) or die (mysql_error());
    }

    qbasic, 02 Февраля 2011

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

    +83

    1. 1
    2. 2
    3. 3
    private double calculateValue( int number, int rate ) {
        return Math.pow( number, rate );
    }

    galak, 31 Января 2011

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

    +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
    static struct hostent *hostd;
    
    int getLocalIP(unsigned long *ip) {
        if ((hostd = gethostbyname("")) == NULL) {
            *ip = -1;
            return -1;
        } else {
            *ip = *(u_long *) hostd->h_addr_list[0];
            return 0;
        }
    }
    
    unsigned long getLocalIPRedneckStyle() {
        unsigned long *ip;
    
        if (getLocalIP(ip)) {
            return -1;
        } else {
            return *ip;
        }
    }

    danilissimus, 29 Января 2011

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