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

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $sql = mysql_query("SELECT * FROM `pages` WHERE `url` = '".$_GET['doid']."'") or die("Query error");
    			if ($r = mysql_fetch_array($sql)) {
    			
    				if($r['public']=='1') mysql_query("UPDATE `pages` SET `public` = '0' WHERE `url` = '".$_GET['doid']."'");
    				else mysql_query("UPDATE `pages` SET `public` = '1' WHERE `url` = '".$_GET['doid']."'");
    			
    			}

    ZOTTIG, 03 Декабря 2010

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

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    void CVC6_SampleCodeDlg::OnCHECKForceGDI() 
    {
    	// TODO: Add your control notification handler code here
    	CButton *pBut = (CButton *) GetDlgItem(IDC_CHECK_ForceGDI);
    	m_vportsdk.SetForceGDI(pBut->GetCheck());	
    	if(pBut->GetCheck() == 0)
    		m_ForceGDI = false;
    	else if(pBut->GetCheck() == 1)
    		m_ForceGDI = true;
    }

    VPort ActiveX SDK PLUS от Moxa
    часть 3

    absolut, 27 Ноября 2010

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

    +155

    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
    /*фрагмент из компонента*/
    $arProps = array(
    "NAMES"=>$props["NAMES"]["VALUE"],
    "DESCRIPTIONS"=>$props["DESCRIPTIONS"]["VALUE"],
    "LINKS"=>$props["LINKS"]["VALUE"],
    "IMAGES"=>$props["PICTURES"]["VALUE"],
    "URLS" => array(
    "0"=>CFile::GetPath($props["PICTURES"]["VALUE"][0]),
    "1"=>CFile::GetPath($props["PICTURES"]["VALUE"][1]),
    "2"=>CFile::GetPath($props["PICTURES"]["VALUE"][2]),
    "3"=>CFile::GetPath($props["PICTURES"]["VALUE"][3]),
    "4"=>CFile::GetPath($props["PICTURES"]["VALUE"][4]),
    ),
    );
    
    /*код из шаблона*/
    <div class="text-blocks">
    <?if($arResult["PROPS"]["DESCRIPTIONS"][0]["TEXT"]):?>
      <div id="banner_text_1" class="text curr" style="left:92px; opacity:0.8; display: block">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][0]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][0]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    <?if($arResult["PROPS"]["DESCRIPTIONS"][1]["TEXT"]):?>
      <div id="banner_text_2" class="text" style="left:156px; opacity:0; display: none">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][1]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][1]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    <?if($arResult["PROPS"]["DESCRIPTIONS"][2]["TEXT"]):?>
      <div id="banner_text_3" class="text" style="left:220px; opacity:0; display: none">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][2]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][2]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    <?if($arResult["PROPS"]["DESCRIPTIONS"][3]["TEXT"]):?>
      <div id="banner_text_4" class="text" style="left:284px; opacity:0; display: none">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][3]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][3]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    <?if($arResult["PROPS"]["DESCRIPTIONS"][4]["TEXT"]):?>
      <div id="banner_text_4" class="text" style="left:284px; opacity:0; display: none">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][4]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][3]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    </div>

    Выборка свойств картинок и последующий вывод в шаблоне (выдернуто из самописного компонента Битрикс). Писал это очень давно, вот возникла необходимость править, открыл - посмотрел - случилась истерика!!! Очевидно что такое циклы я тогда еще не подозревал))

    akovalenko, 26 Ноября 2010

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    void XmlElementHandler::startElement(
                        const XMLCh* const uri,
                        const XMLCh* const localname,
                        const XMLCh* const qname,
                        const XERCES_CPP_NAMESPACE_QUALIFIER Attributes& attrs
                        )
    {
      static XmlContext *context = XmlContext::getInstance();
      static XmlParser *parser = XmlParser::getInstance();

    оптимизируем обращения к синглтонам. потому что одной невидимой глобальной переменной явно не достаточно. вот такое щасце в 30+ методах на реализации интерфейса к Xerces-C.

    Dummy00001, 23 Ноября 2010

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

    +155

    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
    /* use <first> of a [std::pair] */
    template<typename _type_, typename _pred_>
    struct use_first {
    	use_first(_type_ val, _pred_ pred) { value = val; predicate = pred; }
    	
    	template<typename _first_type_, typename _second_type_>
    	bool operator()(const std::pair<_first_type_, _second_type_> &pr)
    	{
    		return predicate(pr.first, value);
    	}
    
    private:
    	_type_ value;
    	_pred_ predicate;
    };
    
    /* factory function: use it to init a [use_first] object */
    template<typename _type_, typename _pred_>
    use_first<_type_, _pred_> make_use_first(_type_ value, _pred_ pred)
    {
    	return use_first<_type_, _pred_>(value, pred);
    }
    
    /* usage of [use_first] */
    std::vector< std::pair<int, int> > lol;
    std::vector< std::pair<int, int> >::iterator = std::find_if(lol.begin(), lol.end(), make_use_first(0, std::equal_to()));

    собственно была проблема в том, что в контейнерах(например std::vector, std::deque) хранятся пары(std::pair) и зачастую нужно организовать какие-либо действия либо по первому(first), либо по второму(second) члену из std::pair.
    приведен код только для first, ибо код для second немного похож

    в итоге получилось сие поделие, а еще я люблю обмазаться несвежим....

    Govnoeb, 23 Ноября 2010

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

    +155

    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
    if(!CModule::IncludeModule("iblock")) return;
    		
    		$ID_PRODUCT = $_POST['prod_id'];
    		$ID_USER = $USER->GetID();
    		$TEXT = $_POST['txt'];
    		$IBLOCK_ID = $_POST['iblock_id'];
    		$NAME = "Отзыв";
    		
    		$arPROPS = Array(
    			"ID_PRODUCT" => $ID_PRODUCT,
    			"ID_USER" => $ID_USER,
    			"TEXT" => $TEXT,
    		);
    		
    		$arFields = Array(
    			"IBLOCK_ID"=>$IBLOCK_ID,
    			"NAME"=>$NAME,
    			"PROPERTY_VALUES" => $arPROPS,
    		);
    		print_r ($arFields);
    		$e = new CIBlockElement;
    		if (!$e->Add($arFields,false,true,false)) {
    			echo "Error: ".$e->LAST_ERROR;
    		}
    		else {
    			echo "Всё ништяк";
    		}
    -------------------------------------------------------------------
    Возвращается:
    ----------------------------------------------------------------
    Array
    (
        [IBLOCK_ID] => 5
        [NAME] => Отзыв
        [PROPERTY_VALUES] => Array
            (
                [ID_PRODUCT] => 119
                [ID_USER] => 1
                [TEXT] => kdfkja
            )
    
    )
    Всё ништяк
    ----------------------------------------------------------------
    Создаётся новая запись, но почему-то в свойстве TEXT одна левая буква какая-то, ничо понять не могу(((

    minnigaliev-r, 19 Ноября 2010

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

    +155

    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
    <?php
    if ( !defined("MAGIC_WORD") ) die( "Доступ к данной странице запрещен!" );
    /**
     * ==============================
     * Page Load
     * ============================== 
     */
    $file = phpInjection(sqlInjection(@$_GET['f']));
    switch ($file)
    {
        case "news":
            $module = "news.php";
            break;
        case "lk":
            $module = "profile.php";
            break;
        case "register":
            $module = "register.php";
            break;
        case "stat":
            $module = "stat.php";
            break;
        case "forget":
            $module = "forget.php";
            break;
        case "vote":
            $module = "vote.php";
            break;
        case "webmoney":
            $module = "webmoney.php";
            break;
        default:
            $module = "main.php";
    }
    if (file_exists(ROOT_DIR . "/engine/" . $module))
    {
        include ROOT_DIR . '/engine/' . $module;
    }
    else
    {
        $tpl->result["content"] = "<div class='error'>Ошибка 404. Страница не найдена</div>";
    }
    ?>

    rat4, 17 Ноября 2010

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

    +155

    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
    // Юзер просит завернуть в функцию и оптимизировать следующий кусок кода.
    // Статус 
    echo "<u>Статус<u>: "; 
    if ($ank['status']==0){echo 'Нет статуса!<br>';} 
    else if ($ank['status']==1){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Думаю: '.$ank['status_text'].'<br>';} 
    else if ($ank['status']==2){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Дела: '.$ank['status_text'].'<br>';} 
    else if ($ank['status']==3){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Магазины: '.$ank['status_text'].'<br>';} 
    else if ($ank['status']==4){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Печатаю: '.$ank['status_text'].'<br>';} 
    else if ($ank['status']==5){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Вопрос: '.$ank['status_text'].'<br>';} 
    else if ($ank['status']==6){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Сердитый: '.$ank['status_text'].'<br>';} 
    ........................
    else if ($ank['status']==30){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Пью пиво: '.$ank['status_text'].'<br>';} 
    else if ($ank['status']==31){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Слушаю музыка: '.$ank['status_text'].'<br>';} 
    else if ($ank['status']==32){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Учеба: '.$ank['status_text'].'<br>';} 
    else if ($ank['status']==33){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Работа: '.$ank['status_text'].'<br>';} 
    else if ($ank['status']==34){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />В туалете: '.$ank['status_text'].'<br>';} 
    // Статус
    
    
    
    // Сразу же постит "программист", который зарабатываем на своем деле
    
    function a($st,$t,$H){ 
    $s=range(0,34); 
    unset($s[0]); 
    $r=array('радость','дела','печаль и т.д.'); 
    if(!$s){ 
    echo 'нету статуса'; 
    }else{ 
    echo '<img src=""'. $H . '/icons/status/'.$st.'.gif">'.$r[$st].' '.$t.'<br/>'; 
    } 
    
    } 
    
    
    ########################## 
    a($ank['status'],$ank['text_status'],$H);
    
    
    
    // ну и мой варинат (для сравнения)
      function get_user_status($status_id) 
       { 
        
       $statuses = array 
          ( 
          0 => 'Нет', 
          1 => 'Думаю', 
    ...
          33 => 'Работа', 
          34 => 'В туалете' 
          ); 
    
       return $statuses[$status_id]; 
        
       }
    
    // использовать
    echo 'Статус : <img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />'.get_user_status($ank['status']).': '.$ank['status_text'].'<br>';

    Без комментариев

    Morgan, 25 Октября 2010

    Комментарии (17)
  10. JavaScript / Говнокод #4315

    +155

    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 ValidateTimeData(Dataset) {
    	var HoursVal = 0;
    	var MinutesVal = 0;
    	
    	//Забираем значения из формы
    	HoursVal = edtTaskHours.Value;
    	MinutesVal = edtTaskMinutes.Value;
    	
    	if ( HoursVal == 0 && MinutesVal == 0 ) {
    		ShowWarningDialog("Поля 'Время (часы)' и 'Время (минуты)' обязательны для заполнения");	
    		return false;
    	} else {
    		return true;
    	}
    	
    	//Присваиваем время
    	Dataset.Values('ActualDurationHours') = HoursVal;
    	Dataset.Values('ActualDurationMinutes') = MinutesVal;
    	
    	Dataset.Values('PayedHours') = HoursVal;
    	Dataset.Values('PayedMinutes') = MinutesVal;
    	
    	Dataset.Values('ConfirmHours') = HoursVal;
    	Dataset.Values('ConfirmMinutes') = MinutesVal;
    	
    	Dataset.Values('Duration') = HoursVal * 60 + MinutesVal;
    	Dataset.Values('ActualDuration') = HoursVal * 60 + MinutesVal;	
    }

    Я бы еще оооочень долго разбирался, почему значения не присваиваются, если бы не посмотрел повнимательнее в 13 строчку :)

    cyrill, 08 Октября 2010

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

    +155

    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
    function printTree($array){
        global $db;
        for($i=0;$i<(count($array));$i++){
            #print $array[$i]['id'].'='.$array[$i]['title'];
            if($array[$i]['pid']==0){
                print '<li>'.$array[$i]['title']."</li>";
                $child=array();
                for($j=0;$j<count($db);$j++){
                    if($db[$j]['pid']!=0 && $db[$j]['pid']==$array[$i]['id']){
                        $child[]=array('id'=>$db[$j]['id'],'pid'=>0,'title'=>$db[$j]['title']);
                    }
                }
                print '<ul>';
                print printTree($child);
                print '</ul>';
            }
        }
    }

    Отрисовка дерева на PHP...

    nikelin, 08 Октября 2010

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