1. C++ / Говнокод #6128

    +161

    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
    /////////////////////////////////////////////////////////////////////////////
    #define TWAIT(_WAIT_EXPR_, _TIMEOUT_)	TWAIT_EX(_WAIT_EXPR_, _TIMEOUT_, 0)
    #define TWAIT_(_WAIT_EXPR_, _TIMEOUT_)	TWAIT_EX_(_WAIT_EXPR_, _TIMEOUT_, 0)
    /////////////////////////////////////////////////////////////////////////////
    #define TWAIT_DECL_VARS														\
    	DWORD TWAIT_START = GetTickCount();										\
    	bool TWAIT_RET = true;													
    /////////////////////////////////////////////////////////////////////////////
    #define TWAIT_EX(_WAIT_EXPR_, _TIMEOUT_, _ABORT_)							\
    	DWORD TWAIT_START = GetTickCount();										\
    	bool TWAIT_RET = true;													\
    	do {ProcessMessage(1);													\
    		TWAIT_RET = GetTickCount() - TWAIT_START < (DWORD)(_TIMEOUT_);		\
    		if( !TWAIT_RET ) break;												\
    		if( _ABORT_ != 0 ) { TWAIT_RET = false; break; }					\
    	} while( (_WAIT_EXPR_) == 0 );
    /////////////////////////////////////////////////////////////////////////////
    #define TWAIT_EX_(_WAIT_EXPR_, _TIMEOUT_, _ABORT_)							\
    	TWAIT_START = GetTickCount();											\
    	TWAIT_RET = true;														\
    	do {ProcessMessage(1);													\
    		TWAIT_RET = GetTickCount() - TWAIT_START < (DWORD)(_TIMEOUT_);		\
    		if( !TWAIT_RET ) break;												\
    		if( _ABORT_ != 0 ) { TWAIT_RET = false; break; }					\
    	} while( (_WAIT_EXPR_) == 0 );

    lambdas, functors... макрос - это наше все... а ProcessMessage(1) тоже радует.

    Aleskey, 30 Марта 2011

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

    −91

    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
    Функция СравнитьЭлементыСправочника(Элемент1, Элемент2, фЗаписатьРазличия=0) Экспорт
    	Перем Рез;
    	Рез = 0;
    	Если (Элемент1 <> Элемент2) и (фЗаписатьРазличия=0) Тогда
    		Рез = 1;
    		Перейти ~М1;
    	КонецЕсли;
    	
    	// сначала проверим код и наименование 
    	Если (Элемент1.Код <> Элемент2.Код) Тогда
    		если фЗаписатьРазличия=1 Тогда
    			ЗаписьЖурналаРегистрации("изменен код с '"+СокрЛП(Элемент1.Код)+"' на '"+СокрЛП(Элемент2.Код)+"'","Справочники","Изменен реквизит справочника",Элемент1,2);
    		Иначе
    			Рез = 1;
    			Перейти ~М1;
    		КонецЕсли;	
    	КонецЕсли;
    	
    	Если Элемент1.Наименование <> Элемент2.Наименование Тогда
    		если фЗаписатьРазличия=1 Тогда
    			ЗаписьЖурналаРегистрации("изменено наименование с '"+СокрЛП(Элемент1.наименование)+"' на '"+СокрЛП(Элемент2.наименование)+"'","Справочники","Изменен реквизит справочника",Элемент1,2);
    		Иначе
    			Рез = 1;
    			Перейти ~М1;
    		КонецЕсли;	
    	КонецЕсли;	
    
    	// == тут было код который удалил автор поста	==
    
    ~М1:	
    	Возврат Рез;
    		
    КонецФункции

    Внезапно нашел такую функцию неизвестного автора :)

    CYFiVE, 30 Марта 2011

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

    +179

    1. 1
    2. 2
    3. 3
    4. 4
    ClassName::~ClassName()
        {
        memset( this, 0, sizeof( *this ) );
        }

    Написано коллегой из теплой страны. Случайно нашел в коде :)

    Mintel, 29 Марта 2011

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

    +115

    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
    columnDomain.Visible =
     (grid.MainView.RowCount >
    0
    &&
     !String.IsNullOrEmpty(
         ((ListItem)
      grid.MainView.
         GetRow(0)).Domain)
    &&
      ((ListItem)
     grid.MainView.GetRow(0))
          .Domain !=
     ((ListItem)
     grid.MainView.GetRow(0))
         .DisplayName);

    Это реальное форматирование кода, очевидно сделанное для удобства чтения на узком и высокои мониторе :) И такого многие и многие экраны

    eval_2009, 29 Марта 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var begin_h = html.indexOf("<h1 class=\"header\">");
    var end_h = html.indexOf("</h1>");
    var data = "";
    if (begin_h != -1 && end_h != -1) {
      data = html.substr(begin_h, end_h + 5); //5 - это длина тега </h1>, чтобы его тоже захватило
    }

    Прелесть, найденная на гугл-ответах. Человек пишет расширение для Firefox.

    Vindicar, 29 Марта 2011

    Комментарии (15)
  6. Perl / Говнокод #6123

    −121

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    sub removeSpaces {
      my $str = $_[0];
      while ( $str =~ /[\t ]+/ ) {
        $str = $`.$';
      }
      return $str;
    }

    Найдено при разборе скрипта подготовки данных для тестов.

    Dimio, 29 Марта 2011

    Комментарии (0)
  7. Куча / Говнокод #6122

    +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
    uses crt;
    var c1,c2,c3,k,s:integer;
    begin
    clrscr;
    s:=0;
    for c1:=1 to 9 do
    for c2:=0 to 9 do
    for c3:=0 to 9 do
    k:=c1*100+c2*10+c3+k;
    if (k mod 5 =0) then writeln('LOADING...');
    else if (k mod 7 = 0) then writeln('LOADING...');
    else s:=s+k;
    writeln('Obshie symaя=',s);
    readln;
    end.

    Вот как можно посчитать количество всех трехзначных чисел, которые не делятся на 5 или 7.

    wiapsy, 29 Марта 2011

    Комментарии (13)
  8. JavaScript / Говнокод #6121

    +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
    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
    <script>
    
    var IllegalChars=new Array("select", "drop", ";", "--", "insert", "delete", "xp_", "update", "/", ":", "char(", "?", "`", "|", "declare", "convert", "cast(", "@@", "varchar", "2D2D", "4040", "00400040", "[", "]");
    var IllegalFound=new Array();
    var IllegalCharsCount=0;
    
    function ResetCharsCount()
    {
     IllegalCharsCount=0;
    }
    
    function wordFilter(form,fields)
    {
    	ResetCharsCount();
    	var CheckTextInput;
    	var fieldErrArr=new Array();
    	var fieldErrIndex=0;
    	for(var i=0; i<fields.length; i++)
    	{
    		CheckTextInput = document.forms[form].elements[fields[i]].value;
    		for(var j=0; j<IllegalChars.length; j++)
    		{
    			for(var k=0; k<(CheckTextInput.length); k++)
    			{
    				if(IllegalChars[j]==CheckTextInput.substring(k,(k+IllegalChars[j].length)).toLowerCase())
    				{
    					IllegalFound[IllegalCharsCount]=CheckTextInput.substring(k,(k+IllegalChars[j].length));
    					IllegalCharsCount++;
    					fieldErrArr[fieldErrIndex]=i;
    					fieldErrIndex++;
    				}
    			}
    		}
    	}
    	var alert_text="";
    	for(var k=1; k<=IllegalCharsCount; k++)
    	{
    		alert_text+="\n" + "(" + k + ")  " + IllegalFound[k-1];
    		eval('CheckTextInput=document.' + form + '.' + fields[fieldErrArr[0]] + '.select();');
    	}
    	if(IllegalCharsCount>0)
    	{
    		alert("The form cannot be submitted.\nThe following errors were found:\n_______________________________\n" + alert_text + "\n_______________________________\n");
    		return false;
    	}
    	else
    	{
    		return true;
    		document.forms[form].submit();
    	}
    }
    </script>
    
    ...
    
    <FORM NAME="FormHome" ACTION="search.asp" METHOD="post" onSubmit="return wordFilter('FormHome',['criteria']);">

    http://www.cadw.wales.gov.uk/

    Инъекция не пройдет.

    pingw33n, 29 Марта 2011

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

    +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
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    insert_image.php:
    <?php
    
    require_once('../config.inc.php');
    if ((!isset($_SESSION['user_type'])) || ($_SESSION['user_type'] != 0)) {
        header('Location: /');
        die;
    }
    require('admin_image.inc.php');
    
    
    settitle.php:
    <?php
    
    require_once('../config.inc.php');
    if ((!isset($_SESSION['user_type'])) || ($_SESSION['user_type'] != 0)) {
        header('Location: /');
        die;
    }
    $id = intval($_POST['image']);
    $title = $_POST['imgtitle'];
    mysql_query("UPDATE images SET title='$title' WHERE id=$id");
    require('admin_image.inc.php');
    
    upload_image.php:
    <?php
    
    require_once('../config.inc.php');
    if ((!isset($_SESSION['user_type'])) || ($_SESSION['user_type'] != 0)) {
        header('Location: /');
        die;
    }
    
    if ((isset($_POST['upload'])) && (isset($_FILES['newimage']))) {
        $title = (isset($_POST['title'])) ? $_POST['title'] : '';
        $file = $_FILES['newimage'];
        if ($file['error'] != 0) {
            $msg = 'An error occured during uploading file. (Error code:' . $file['error'] . ')';
        } else {
            $type = $file['type'];
            $tmp_name = $file['tmp_name'];
            //check if we are uploading image or not
            if (!(((preg_match('/\.gif/i', $file['name'])) || (preg_match('/\.jpg/i', $file['name'])) ||
                    (preg_match('/\.jpeg/i', $file['name'])) || (preg_match('/\.bmp/i', $file['name'])) ||
                    (preg_match('/\.png/i', $file['name'])))
                    && ((preg_match('/gif/i', $file['type'])) || (preg_match('/jpg/i', $file['type'])) ||
                    (preg_match('/jpeg/i', $file['type'])) || (preg_match('/bmp/i', $file['type'])) ||
                    (preg_match('/png/i', $file['type']))))) {
                $msg = 'You are trying to upload a non-image file.';
            } elseif (filesize($tmp_name) <= 0) {
                $msg = 'You are trying to upload file which size is 0 bytes.';
            } else {
                $img_data = fread(fopen($tmp_name, 'r'), filesize($tmp_name));
                if (mysql_query("INSERT INTO images (id, image, type, title)"
                                . " VALUES ('',"
                                . " '" . mysql_escape_string($img_data) . "',"
                                . " '" . mysql_escape_string($type) . "',"
                                . " '" . mysql_escape_string($title) . "')"))
                    $msg = 'Image uploaded.';
                else
                    $msg = 'An error occured during inserting image in DB.';
            }
        }
    }
    if (isset($msg))
        $MyPage->assign('msg', $msg);
    require('admin_image.inc.php');

    Какая экспрессия, какое необычное именование файлов... lower_case_with_underscores + просто текст
    А главное какое необычное представление о модульности: 2 файла по 10 строк, и один на 40, в каждом из которых прописана авторизация и которые инклюдят главный файл

    govno, 29 Марта 2011

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

    +174

    1. 1
    (addNewItem) ? (isVideoAudioAttached = true) : (isVideoAudioAttached = false);

    addNewItem и isVideoAudioAttached типа bool

    psl, 29 Марта 2011

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