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

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    GNET::ChatBroadCast::~ChatBroadCast(&cbc);
      }
      else if ( v9 > 9 && v9 == 14 )
      {
        v4 = this->roleid;

    Декомпилил тут игруху, а там такое в псевдокоде.

    DesmondHume, 14 Февраля 2015

    Комментарии (32)
  3. ActionScript / Говнокод #17295

    −93

    1. 1
    2. 2
    -			facade.registerCommand(<enterprise>Constants.CUT_PUST_TRACKS_COMMAND, CutPustTracksCommand);
    +			facade.registerCommand(<enterprise>Constants.CUT_PUST_TRACKS_COMMAND, CutPasteTracksCommand);

    Ну, почти.

    wvxvw, 11 Декабря 2014

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

    +51

    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
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    DWORD getDirectoryIndex()
    	{
    		STATIC_OBJECT_ATTRIBUTES(oa, "\\");
    		HANDLE hFile;
    		DWORD ObjectTypeIndex = 0;
    
    		if (0 <= ZwOpenDirectoryObject(&hFile, DIRECTORY_QUERY, &oa))
    		{
    			NTSTATUS status;
    			PVOID buf = 0, stack = alloca(guz);
    			DWORD cb = 0, rcb = 0x10000;
    
    			do 
    			{
    				if (cb < rcb) cb = RtlPointerToOffset(buf = alloca(rcb - cb), stack);
    
    				if (0 <= (status = ZwQuerySystemInformation(SystemExtendedHanfleInformation, buf, cb, &rcb)))
    				{
    					PSYSTEM_HANDLE_INFORMATION_EX pshti = (PSYSTEM_HANDLE_INFORMATION_EX)buf;
    
    					if (ULONG NumberOfHandles = (ULONG)pshti->NumberOfHandles)
    					{
    						PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handles = pshti->Handles;
    
    						ULONG_PTR UniqueProcessId = GetCurrentProcessId();
    						do 
    						{
    							if (Handles->UniqueProcessId == UniqueProcessId && Handles->HandleValue == (ULONG_PTR)hFile)
    							{
    								ObjectTypeIndex = Handles->ObjectTypeIndex;
    								break;
    							}
    
    						} while (Handles++, --NumberOfHandles);
    					}
    				}
    			} while (STATUS_INFO_LENGTH_MISMATCH == status);
    
    			ZwClose(hFile);
    		}
    
    		return ObjectTypeIndex;
    	}
    
    	ZOBJECT_ALL_TYPES_INFORMATION()
    	{
    		_TypeInformation = 0, _NumberOfTypes = 0;
    
    		if (DWORD DirectoryTypeIndex = getDirectoryIndex())
    		{
    			PVOID stack = alloca(guz);
    			OBJECT_ALL_TYPES_INFORMATION* poati = 0;
    			DWORD cb = 0, rcb = 0x2000;
    			NTSTATUS status;
    			do 
    			{
    				if (cb < rcb)
    				{
    					cb = RtlPointerToOffset(poati = (OBJECT_ALL_TYPES_INFORMATION*)alloca(rcb - cb), stack);
    				}
    
    				if (0 <= (status = ZwQueryObject(0, ObjectAllTypeInformation, poati, cb, &rcb)))
    				{
    					if (DWORD NumberOfTypes = poati->NumberOfTypes)
    					{
    						if (OBJECT_TYPE_INFORMATION* TypeInformation = (OBJECT_TYPE_INFORMATION*)LocalAlloc(0, rcb))
    						{
    							_NumberOfTypes = NumberOfTypes;
    							_TypeInformation = TypeInformation;
    
    							STATIC_UNICODE_STRING_(Directory);
    							OBJECT_TYPE_INFORMATION* pti = poati->TypeInformation;
    							PWSTR buf = (PWSTR)(TypeInformation + NumberOfTypes);
    							int Index = 0;
    							do 
    							{
    								if (RtlEqualUnicodeString(&Directory, &pti->TypeName, TRUE))
    								{
    									_firstObjectTypeIndex = DirectoryTypeIndex - Index;
    								}
    
    								DWORD Length = pti->TypeName.Length, MaximumLength = pti->TypeName.MaximumLength;
    								memcpy(buf, pti->TypeName.Buffer, Length);
    
    								*TypeInformation = *pti;
    								TypeInformation++->TypeName.Buffer = buf;
    
    								buf = (PWSTR)RtlOffsetToPointer(buf, Length);
    
    								pti = (OBJECT_TYPE_INFORMATION*)
    									(((ULONG_PTR)pti + sizeof(OBJECT_TYPE_INFORMATION) + MaximumLength + sizeof(PVOID)-1) & ~(sizeof(PVOID)-1));
    
    							} while (Index++, --NumberOfTypes);
    						}
    					}
    				}
    			} while (status == STATUS_INFO_LENGTH_MISMATCH);
    		}
    	}

    ObjectTypeIndex

    zhukas, 15 Ноября 2014

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

    +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
    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
    <?php
    /* В настройках кабинета необходимо указать "Проверять md5 на ссылках",
    чтобы нельзя было заплатить сумму отличную от заданной в переменной $summa */
    $summa=50; //Стоимость доступа к платному разделу, в рублях
    $period=60*60*24*2; //Время доступа, в секундах (60 секунд * 60 минут * 24 часа * 2 суток = 172800 секунд). Исчисляется от времени поступления оплаты за код доступа.
    $login='demo1'; //Ваше "Имя пользователя" (логин) в системе Onpay.ru
    $key='a2su3ig8y'; //Ваш "Секретный пароль для API IN" в системе Onpay.ru
    /* Для того, чтобы закрыть доступ к папке, данный код необходимо размещать в индексном файле (index.php) */
    $path='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; //Путь к файлу с этим кодом (определяется автоматически), например: http://onpay.ru/dir/index.php
    $access=0; //Запрещаем доступ, по умолчанию (0 = доступ закрыт, 1 = доступ открыт)
    $code='';
    $error='';
    //Функция округления для md5
    function to_float($sum) {
    if (strpos($sum, ".")) {$sum=round($sum,2);}
    else {$sum=$sum.".0";}
    return $sum;
    }
    /* Подключаемся к базе данных, если нажали на кнопку оплатить или ввели код доступа */
    if(isset($_POST['pay']) || isset($_POST['code'])) {
    $db_host='localhost'; //Хост сервера базы данных (домен или IP-адрес)
    $db_user='root'; //Имя пользователя БД
    $db_pass=''; //Пароль БД
    $db_name='pays'; //Название базы данных
    $db_tabl='payments'; //Название таблицы в которой будут храниться платежи
    if(!mysql_connect($db_host, $db_user, $db_pass)) {echo 'Невозможно подключиться к серверу баз данных';exit;} //Подключение к серверу баз данных
    if(!mysql_select_db($db_name)) {echo 'Не получилось выбрать базу данных '.$db_name;exit;} //Выбор базы данных
    }
    /* Разбираем данные, отправленные через форму*/
    if(isset($_POST['pay'])) { //Если нажали на кнопку покупки кода, то генерируем код, сохраняем его в базу данных и выводим форму оплаты:
    if(is_numeric($summa)) { //Если сумма введена корректно
    $sql = "INSERT INTO $db_tabl SET ".
    "path='$path',".
    "sum='$summa',".
    "payed=0,".
    "date=".time().",".
    "ip='".$_SERVER['REMOTE_ADDR']."';"; //Запрос в базу данных на создание новой записи
    $result=mysql_query($sql); //Добавляем новую строку в базу данных
    if($result) { //Если сохранено в базу данных без ошибок
    $id=mysql_insert_id(); //Получаем id записи
    $code=$id.substr(time(),-7); //Создаем секретный код - соединяем уникальный номер строки в базе данных (id) и последние 7 знаков текущего времени в секундах (коды доступа не должны повторяться)
    $sql = "UPDATE $db_tabl SET code='$code' WHERE id='$id';"; //Запрос в базу данных, для добавления кода доступа
    $result=mysql_query($sql); //Сохраняем код в базу данных
    if($result) { //Если сохранено в базу данных без ошибок
    $sum_for_md5=to_float($summa);
    $md5check=md5("fix;$sum_for_md5;RUR;$code;yes;$key"); //Создаем проверочную строку, которая защищает платежную ссылку от изменений
    $url="http://secure.onpay.ru/pay/$login?pay_mode=fix&pay_for=$code&price=$summa&currency=RUR&convert=yes&md5=$md5check&url_success=".$path; //Формируем платежную ссылку
    /*Выводим код*/
    ?><p style="font-size:14pt;color:blue;">Ваш код доступа: <b><?=$code; //Выводим код ?></b> (сохраните его в надежном месте)<?php
    /*Выводим форму оплаты*/
    ?><h1><a target="_blank" href="<?=$url; //Выводим платежную ссылку ?>">Оплатить код доступа:</a></h1>
    <iframe src="<?=$url; //Выводим платежную ссылку ?>" width="195" height="600" frameborder=no scrolling=no></iframe><?php
    } else unset($_POST['pay']); //Удаляем элемент массива (чтобы выводилась кнопка покупки кода)
    } else unset($_POST['pay']);
    } else unset($_POST['pay']); //Конец условия if(is_numeric($summa)) { //Если сумма введена корректно
    } elseif(isset($_POST['code'])) { //Если ввели код, то проверяем его в базе данных и если верный, то сохраняем в COOKIE
    $code=intval($_POST['code']); //Код должен быть целым числом
    $sql = "SELECT * FROM $db_tabl WHERE code='$code' AND path='$path' AND payed>=sum AND date>=".time().";"; //Проверка кода
    $result=mysql_query($sql); //Сохраняем код в базу данных
    if($result) { //Если сохранено в базу данных без ошибок
    if($row=mysql_fetch_assoc($result)) { //Если в базе данных найдена строка с введенным кодом для данной директории и он не просрочен, то сохраняем код
    $access=1; //Разрешаем доступ
    } else $error='Введен неправильный код доступа.';
    }
    } //
    if($access == 0) { //Если доступ запрещен, то выводим форму для покупки или ввода оплаченного кода
    ?><p style="font-size:14pt;font-weight:bold;">Доступ закрыт.<?php
    ?><p style="font-size:14pt;font-weight:bold;color:red;"><?=$error; //Выводим ошибки?><?php
    if(!isset($_POST['pay'])) { //Если не выведена форма оплаты
    ?><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
    <input style="font-size:16pt;font-weight:bold;color:red;" type="submit" name="pay" value="Купить доступ до <?=date('H:i:s d.m.Y',time()+$period); //Выводим дату ?> всего за <?=$summa; //Выводим сумму ?>&nbsp;руб.">
    </form><?php
    }
    ?><p><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
    <input style="font-size:14pt;" type="text" name="code" value="<?=$code; //Выводим текущий код доступа, при его наличии ?>">
    <input style="font-size:14pt;" type="submit" value="Ввести оплаченный код доступа">
    </form><?php
    exit; //Прекращаем выполнение скрипта и выходим
    /*Все, что расположено ниже этой строки - не выводится без верного кода доступа. */
    } //Конец условия if($access == 0) { if(isset($_POST['pay'])) {
    ?>
    <h1>Доступ по коду <u><?=$row['code'];?></u> разрешен до <?=date('H:i:s d.m.Y',$row['date']);?></h1>
    <p>Получено: <?=$row['payed'];?>&nbsp;руб.
    <p>Цена продления: <?=$row['sum'];?>&nbsp;руб.
    <p>onpay_id: <?=$row['onpay_id'];?>
    <p><a href=" <?=$row['path'];?>">Секретная ссылка</a>

    Автор задал на тостере вопрос: "я читал про куки но ничего не понял, дайте готовое решение что бы использовать с моим кодом"

    dentelis, 08 Ноября 2014

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

    +138

    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
    public static byte[] Trim(this byte[] origin_array)
            {
                int findex = -1, eindex = -1;
    
                bool inseq = false;
    
                if (origin_array[0] != 0x00)
                {
                    if (origin_array[origin_array.Length - 1] != 0x00)
                        return origin_array;
                    findex = 0;
                }
    
                for (int i = 0; i < origin_array.Length; i++)
                {
                    if (origin_array[i] == 0x00)
                    {
                        if (inseq)
                            continue;
                        else
                            inseq = true;
                    }
                    else
                    {
                        if (inseq)
                            if (findex == -1)
                                findex = i;
                        eindex = i;
                    }
                }
    
                if (findex == eindex)
                    return new byte[0];
                
                byte[] result_array = new byte[eindex - findex + 1]; 
                Array.Copy(origin_array, findex, result_array, 0, result_array.Length);
                return result_array;
            }

    dzzpchelka, 04 Октября 2014

    Комментарии (32)
  7. Python / Говнокод #16794

    −98

    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
    def down_cast_qobject(tp, obj):
        assert obj
        assert isinstance(tp, type)
        assert issubclass(tp, QObject)
        addresses = shiboken.getCppPointer(obj)
        assert isinstance(addresses, collections.Iterable)
        assert len(addresses)
        ptrs = filter(lambda p: p > 0L, addresses)
        assert ptrs
        ptr = ptrs[0]
        assert isinstance(ptr, long)
        wrapped = shiboken.wrapInstance(ptr, tp)
        assert isinstance(wrapped, tp)
        return wrapped

    Paranoid_mode = True

    QBatman, 03 Октября 2014

    Комментарии (32)
  8. bash / Говнокод #16743

    −80

    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
    Devastator:ark grawl$ sass-convert -F scss -T sass -i -R *.scss
    Error: '*.scss' is not a directory
      Use --trace for backtrace.
    Devastator:ark grawl$ sass-convert -F scss -T sass -i -R .
    Devastator:partials grawl$ sass-convert -F scss -T sass -i -R *.scss
    Error: 'colors.scss' is not a directory
      Use --trace for backtrace.
    Devastator:partials grawl$ sass-convert -F scss -T sass -i -R .
        convert ./colors.scss
      overwrite ./colors.scss
    Errno::EISDIR: Is a directory - .
      Use --trace for backtrace.
    Devastator:partials grawl$ sass-convert -F scss -T sass -i -R
    Error: directory required when using --recursive.
      Use --trace for backtrace.

    sass-convert великолепен

    Grawl, 22 Сентября 2014

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

    +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
    class numArray
    {	public $firstNum;
    	public $lastNum;
    
    	
    	function __construct($firstNum, $lastNum)
    	{
    		$this->firstNum = $firstNum;
    		$this->lastNum = $lastNum;
    	}
           function makeArr($firstNum, $lastNum) 
           {
           	$ourArr = [];
           	for ($i=$this->firstNum; $i <=$this->lastNum; $i++) { 
           		$ourArr[]+= $i;
           	}
           	return $ourArr;
           }
    
    }
    
    
    class MultipleOf
    {
    	public $num1;
    	public $num2;
    	
    	function __construct($num1,$num2)
    	{
    		$this->num1 = $num1;
    		$this->num2 = $num2;
    		
    	}
    
           function echoMultipleOf($oArr)
           {
           	$trueArr=[];
           	foreach ($oArr as $key => $value)
           	{
           		if (($value%$this->num1 === 0) && ($value%$this->num2 != 0)) {
           				
           			$trueArr[] += $value;
           		}
           		
           	}
           	echo var_dump($trueArr);
           }
    
    }
    
    #Проверка:
    
    $proba1 = new numArray(1,100);
    $globalArr1= $proba1->makeArr();
    
    
    $ask1 = new MultipleOf(3,12);
    $ask1->echoMultipleOf($globalArr1);

    1. Создать массив чисел от 1 до 100. Вывести все элементы массива, которые кратны 3 и не кратны 12. (ООП головного мозга)

    VladDelec, 09 Августа 2014

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

    +135

    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
    public JsonResult MusicPlayer(DateTime date)
            {
                var order = OrdersRepository.FindAll().ToList();
                int play = 0;
                
                foreach (var item in order)
                {
                    if (item.Date<=date){
                        var date2 = date.ToString();
                        return Json(new { date2});
                    }
                    return Json(new { play });
                }
    
                return Json(new { play });
            }

    Отправление данных через Json

    Emir, 06 Августа 2014

    Комментарии (32)
  11. Java / Говнокод #16277

    +73

    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
    @SuppressWarnings("unchecked")
    	private <T> T convert(final String p, final Class<T> type) {
    		if (p == null) {
    			return null;
    		}
    		if (type == String.class) {
    			return (T) String.valueOf(p);
    		} else if (type == Integer.class) {
    			return (T) Integer.valueOf(p);
    		} else if (type == Boolean.class) {
    			return (T) Boolean.valueOf(p);
    		} else if (type == Double.class) {
    			return (T) Double.valueOf(p);
    		} else if (type == Long.class) {
    			return (T) Long.valueOf(p);
    		} else if (type == Float.class) {
    			return (T) Float.valueOf(p);
    		} else if (type == Short.class) {
    			return (T) Short.valueOf(p);
    		} else if (type == Byte.class) {
    			return (T) Byte.valueOf(p);
    		}
    		throw new UnsupportedOperationException(String.format("Cannot convert \"%s\" to %s", p, type));
    	}

    распарсь мне строку...

    Lure Of Chaos, 04 Июля 2014

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