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

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

    +162

    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
    //...
    	CString signature(pMsg->clipEvent.signature);
    	int indx = signature.Find('-');
    	if(!indx)
    		signature.Delete(indx);
    	indx = signature.Find('-');
    	pEvent->eventData.signature.doorNum = _ttoi(signature.Left(indx));
    	signature.Delete(0, indx+1);
    	indx = signature.Find('-');
    	pEvent->eventData.signature.eventType = _ttoi(signature.Left(indx));
    	signature.Delete(0, indx+1);
    	indx = signature.Find('-');
    	pEvent->eventData.signature.eventID = _ttoi(signature.Left(indx));	
    	signature.Delete(0, indx+1);
    	indx = signature.Find('-');
    	pEvent->eventData.signature.itemNumber = _ttoi(signature.Left(indx));	
    	signature.Delete(0, indx+1);
    	indx = signature.Find('-');
    	CString dateTimeStr;
    	dateTimeStr	= signature.Mid(5, 2);
    	dateTimeStr += '/';
    	dateTimeStr += signature.Mid(8, 2);
    	dateTimeStr += '/';
    	dateTimeStr += signature.Left(4);
    	dateTimeStr += ' ';
    	dateTimeStr += signature.Mid(11, 2);
    	dateTimeStr += ':';
    	dateTimeStr += signature.Mid(14, 2);
    	dateTimeStr += ':';
    	dateTimeStr += signature.Mid(17, 2);
    	pEvent->eventData.signature.eventDateTime = DEM_getTimeDateStampFromTimeDateString(dateTimeStr);
    	signature.Delete(0, 20);
    	pEvent->eventData.signature.cameraIndex = _ttoi(signature);
    //...

    инициализация числовых переменных из строки с заранее известным форматом...
    так как автор "кончал на MFC", с функцией sscanf западло было работать

    ShuraKotov, 09 Февраля 2011

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

    +162

    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
    // Admin login
        if(isset($_POST['login_submit'])) {        
            // Sleep TEMPLATE_CMS_LOGIN_SLEEP seconds for blocking Brute Force Attacks
            sleep(TEMPLATE_CMS_LOGIN_SLEEP);
            $user_xml_db = getXMLdb('../data/system/users.xml');        
            $user = selectXMLRecord($user_xml_db, "/root/user[login='".post('login')."']");
            if($user !== null) {
                if($user->login == post('login')) {
                    if(trim($user->password) == encryptPassword(trim(post('password')))) {
                        if($user->role == 'admin') {
                            $_SESSION['admin'] = true;
                            $_SESSION['user_id'] = (int)$user['id'];
                            $_SESSION['user_login'] = (string)$user->login;
                        }
                    } else {
                        $login_error = 'Wrong <b>login</b> or <b>password</b>';
                    }
                } 
            } else {
                $login_error = 'Wrong <b>login</b> or <b>password</b>';
            }
        }

    qbasic, 06 Февраля 2011

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

    +162

    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
    class Recode
    {
    private:
    	union
    	{
    		INT16U gg;
    		unsigned char g[2];
    	};
    public:
    	Recode(INT16U a)		
    	{
    		gg=a;
    	};
    
    	void recode(void)
    	{
    		coding->recodeArray(g[0], g[1]);
    	}
            //Куча других методов:
            ...
    };
    
    /*#define C Recode
    Recode a[]={1, C(3,4),  2, 34, C(98,23)};
    #undef C*/
    
    #define _ +256*
    Recode a[]={1 , 3 _ 4 , 56 , 0 _ 56};
    #undef _

    Идея интересная, но не для реального кода. :)

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

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

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    vector<int> vi;
      vector<bool> vi_index;
      const unsigned unicode_size=0x10FFF;
      vi.resize (unicode_size+1);
      vi_index.resize (unicode_size+1);
      for (int fa=0;fa<vi.size();fa++) 
        vi[fa]=0;
      
      for (int fa=0;fa<vi.size();fa++) 
        vi_index[fa]=false;

    Человек не умеет инициализировать вектор. Ну, и пр.

    panter_dsd, 03 Февраля 2011

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

    +162

    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
    <?php
    $door[0]=$arResult["NAME"];
    while($ob = $res->GetNextElement()){
            $arFields = $ob->GetFields();
            $door[]=$arFields["NAME"];
    }
    $door= array_unique($door);
    $model = implode(",", $door);
    $model_polotna = explode(",", $model);
    $sz = sizeof($model_polotna);
    for ($i=0; $i<=$sz; $i++){?>
            <option id="<?echo $i;?>" value="<? echo $model_polotna[$i];?>"><?echo $model_polotna[$i];?></option>
    <?}?>

    Сайт на битриксе...

    torch1313, 03 Февраля 2011

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

    +162

    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
    function get_doc_status($date_valid) {
    	$cur_mk = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
    	$date_valid = explode(".", $date_valid);
    	$valid_mk = mktime(0, 0, 0, $date_valid[1], $date_valid[0], $date_valid[2]);
    
    	if($valid_mk <= $cur_mk) {
    		return 2;
    	}
    
    	$month = intval($date_valid[1]);
    	$year = intval($date_valid[2]);
    
    	if(($month > 1) && ($month < 12)) {
    		$prev_month = $month - 1;
    		$prev_year = $year;
    	} elseif($month == 1) {
    		$prev_month = 12;
    		$prev_year = $year - 1;
    	}
    
    	$month_mk = 60 * 60 * 24 * 30;
    	$prev_mk = mktime(0, 0, 0, $prev_month, $date_valid[0], $prev_year);
    
    	if(($valid_mk - $prev_mk) <= $month_mk) {
    		return 1;
    	}
    	return 0;
    }

    Задача со слов автора:
    Есть определенная дата (что-то типа срока годности), есть текущая дата. Задача заключается в выводе статуса даты.
    1. До истечения срока больше месяца - функция возвращает 0
    2. До истечения меньше месяца - 1
    3. Срок истек - 2

    Товарисчь не знал про time() и strtottime().

    WhiteRat, 29 Января 2011

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    <?php
    if ((substr($_SERVER['USER_AGENT'],0,6)=='Yandex') || (substr($_SERVER['USER_AGENT'],0,11)=='YaDirectBot')) $bot='yandex';
    else if ((strpos($_SERVER['USER_AGENT'],'Googlebot')!==false) || (strpos($_SERVER['USER_AGENT'],'Mediapartners-Google')!==false) || (strpos($_SERVER['USER_AGENT'],'Google Search Appliance')!==false)) $bot='google';
    else if (substr($_SERVER['USER_AGENT'],0,12)=='StackRambler') $bot='rambler';

    qbasic, 28 Января 2011

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(!$RISK && in_array($USER->GetID(), array("1", "14"))){
    	$RECCURING = true;
    }else{
    	$RECCURING = false;
    }

    Подписка на оплату. Магические числа 1 и 14.

    hdkeeper, 28 Января 2011

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

    +162

    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
    QString calcFileSize( qint64 value ) 
    {  //pay attention that for size<1M "" returned
    	QString sizeStr = "";
    	if (value > 99ll * 1000ll * 1000ll * 1000ll * 1000ll)
    		sizeStr = QString::number ((((value / 1000) / 1000) / 1000) / 1000) + QObject::tr (" TB");
    	else if (value > 99ll * 1000ll * 1000ll * 1000ll)
    		sizeStr = QString::number (((value / 1000) / 1000) / 1000) + QObject::tr (" GB");
    	else if (value > 99 * 1000 * 1000)
    		sizeStr = QString::number (((value / 1000) / 1000)) + QObject::tr (" MB");
    	else if (value > 99 * 1000)
    		sizeStr = QString::number ((value / 1000) ) + QObject::tr (" KB");
    	else
    		sizeStr = QString::number (value) + QObject::tr (" Bytes");
    	return sizeStr;
    }

    Без слов.

    panter_dsd, 26 Января 2011

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

    +162

    1. 1
    2. 2
    if (isset($table_alias) && $table_alias && $table_alias!='')
    	$object_table_name = $table_alias;

    Feng Office, система управления permissions.

    Почему так много дельных разработчиков не используют empty() ?

    awebtech, 25 Января 2011

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