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

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $id = $fInt->filter($this->_getParam('id'));
            $sort = $fInt->filter($this->_getParam('sort'));
            $c_name = $this->mbtrim($fStr->filter($this->_getParam('c_name')));
            $c_shortname = $this->mbtrim($fStr->filter($this->_getParam('c_shortname')));
            $email = $this->mbtrim($fStr->filter($this->_getParam('email')));
            $d_firstname = $this->mbtrim($fStr->filter($this->_getParam('d_firstname')));
            $d_lastname = $this->mbtrim($fStr->filter($this->_getParam('d_lastname')));
    ...

    И так около 20 строк. Какие есть хорошие варианты фильтровать множество разнотипных данных?

    asfalanaft, 15 Сентября 2010

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

    +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
    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
    <?php
    define('PARAM_INT','i');
    define('PARAM_INTEGER','i');
    define('PARAM_FLOAT','f');
    define('PARAM_DOUBLE','f');
    define('PARAM_STRING','s');
    define('PARAM_ID','id');
    define('PARAM_ANY','*');
    define('PARAM_RAW','raw');
    define('PARAM_OBJECT','o');
    define('PARAM_URL','u');
    define('PARAM_EMAIL','e');
    
    define('SOURCE_INPUT','$_GET');
    define('SOURCE_FORM','$_POST');
    define('SOURCE_COOKIE','$_COOKIE');
    define('SOURCE_REQUEST','$_REQUEST');
    define('SOURCE_PATH','$this->params');
    define('SOURCE_ANY','');
    
    class Request implements {
    
    	const PARAM_INT=PARAM_INT;
    	const PARAM_INTEGER=PARAM_INTEGER;
    	const PARAM_FLOAT=PARAM_FLOAT;
    	const PARAM_DOUBLE=PARAM_DOUBLE;
    	const PARAM_STRING=PARAM_STRING;
    	const PARAM_ID=PARAM_ID;
    	const PARAM_ANY=PARAM_ANY;
    	const PARAM_RAW=PARAM_RAW;
    	const PARAM_OBJECT=PARAM_OBJECT;
    	const PARAM_URL=PARAM_URL;
    	const PARAM_EMAIL=PARAM_EMAIL;
    
    	const SOURCE_INPUT=SOURCE_INPUT;
    	const SOURCE_FORM=SOURCE_FORM;
    	const SOURCE_COOKIE=SOURCE_COOKIE;
    	const SOURCE_REQUEST=SOURCE_REQUEST;
    	const SOURCE_PATH=SOURCE_PATH;
    	const SOURCE_ANY=SOURCE_ANY;
    
    .....
    
    }

    цель: пользоваться как и в стиле ООП, как и сделать запись короче, без указания Request::
    некоторые значения синомизированы для менее мучительного процесса вспоминания имен констант.

    говно, но что делать....
    может, у кого-то мозги работают лучше, чем у меня, и предложат другой выход?

    зы: кто согласен, что так и нужно делать, минусуйте и топите, не буду в обиде

    Lure Of Chaos, 10 Сентября 2010

    Комментарии (29)
  4. Pascal / Говнокод #3750

    +108

    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
    ...
    var
     fileName  :string;                // имя файла
     mes       :string;                // текст мессаги
     capt      :string;                // заголовок мессаги
     f         :thandle;
     fils      :integer;
     BytesRead :D WORD;
     c         :byte;
    begin
     writeln('enter filename:');      // просим ввести имя файла
     readln(fileName);                // в fileName заносим имя файла
     if not fileexists(fileName) then // если он несуществует
      begin
      writeln('file not found :( ');   // виводит предупреждение
      readln;
      exit;                           // закриваем прогу
      end;
     writeln('');                              // просим ввесли текст мессаги
     writeln('enter message text (max 10):');  // максмальна длина 10 символов(так как в Project1.exe для нее зарезирвировано 10 байт) потому что длина HelloWorld=10
     readln(mes);
     writeln('');                                 // просим ввести заголовок мессаги
     writeln('enter message caption (max 10):');  // опять максимальная длина 10 символов
     readln(capt);
    
     f:=fileopen(fileName,fmOpenReadWrite);  // откриваем fileName
     fils:=Windows.GetFileSize(f,nil);       // получаем размер
     writeln('size = '+inttostr(fils)+'b');  // виводим размер
    
     // патчим байти для мессаги
     // $2848,$2849,$284A,$284B,$284C,$284D,$284E,$284F,$2850,$2851
     c:=ord(char(pchar(mes[1])));             // патчим первий байт
     SetFilePointer(f, $2848, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[2])));             // патчим второй (2) байт
     SetFilePointer(f, $2849, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[3])));             // патчим 3 байт
     SetFilePointer(f, $284A, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[4])));             // патчим 4 байт;
     SetFilePointer(f, $284B, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[5])));             // патчим 5 байт
     SetFilePointer(f, $284C, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[6])));             // патчим 6 байт
     SetFilePointer(f, $284D, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[7])));             // патчим 7 байт
     SetFilePointer(f, $284E, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[8])));             // патчим 8 байт
     SetFilePointer(f, $284F, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[9])));             // патчим 9 байт
     SetFilePointer(f, $2850, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(mes[10])));             // патчим 10 байт
     SetFilePointer(f, $2851, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     // патчим байти для заголовка мессаги
     // адреса с $283C до $2845
     c:=ord(char(pchar(capt[1])));            // патчим первий байт
     SetFilePointer(f, $283C, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(capt[2])));            // патчим второй байт
     SetFilePointer(f, $283D, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(capt[3])));            // третий символ и так дальше
     SetFilePointer(f, $283E, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(capt[4])));
     SetFilePointer(f, $283F, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    
     c:=ord(char(pchar(capt[5])));
     SetFilePointer(f, $2840, nil, 0);
     WriteFile(f, c, SizeOf(c), BytesRead, nil);
    ...

    Где-то нашёл =(

    BlincAttack, 21 Июля 2010

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

    +122

    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
    <?php
    $login=!empty($_POST['upload_login'])?$_POST['upload_login']:null;
    $date_load=date('YmdHis');
    $info_load=getimagesize($_FILES['upload_wrapper']['tmp_name']);
    if(isset($_FILES['upload_wrapper'])&&$_FILES['upload_wrapper']['error']===0){
    if($_FILES["upload_wrapper"]["type"]=="image/jpeg"or$_FILES["upload_wrapper"]["type"]=="image/jpg"or$_FILES["upload_wrapper"]["type"]=="image/gif"or$_FILES["upload_wrapper"]["type"]=="image/png"){
    if($_FILES['upload_wrapper']['size']<"100000"){
    if($info_load[0]<151&&$info_load[1]<151&&$info_load[0]>149&&$info_load[1]>149){
    if(!file_exists('./loads/'.$login.'')){mkdir("./loads/$login",0700);}
    if(!file_exists('./loads/'.$login.'/wrapper')){mkdir("./loads/$login/wrapper",0700);}
    mkdir("./loads/$login/wrapper/$date_load",0700);
    if(move_uploaded_file($_FILES['upload_wrapper']['tmp_name'],'./loads/'.$login.'/wrapper/'.$date_load.'/'.$_FILES['upload_wrapper']['name']));
    }}}}
    ?>
    <body onload="parent.document.getElementById('upload_wrapper_ok').innerHTML=document.body.innerHTML"><?php if(is_dir('./loads/'.$login.'/wrapper/'.$date_load.'')){echo('Готово. Обложка загружена<style type="text/css">.upload_wrapper_form{display:none} .error_lesson, .error_wrapper{display:none!important}</style>');}else{echo'<style type="text/css">.error_lesson, .error_wrapper{display:block}</style>';}?></body>
    <iframe id="iframe_load_wrapper" class="none" onload="parent.document.getElementById('upload_wrapper_final').innerHTML=document.getElementById('iframe_load_wrapper').innerHTML"><?php $login=!empty($_POST['upload_login'])?$_POST['upload_login']:null; if(file_exists('./loads/'.$login.'/wrapper/'.$date_load.'')){echo('http://youex.ru/modules/lessons/loads/'.$login.'/wrapper/'.$date_load.'/'.$_FILES['upload_wrapper']['name'].''.'');}?></iframe>

    без коментриев

    Vasiliy, 14 Июля 2010

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

    +110

    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
    void BubbleSort(dynamic arr)
    {
        for (int i = arr.Length - 1; i > 0; i--)
        {
            for (int j = 0; j < i; j++)
            {
                if (arr[j] > arr[j + 1])
                {
                    int t = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = t;
                }
            }
        }
    }

    Обобщенное программирование (:
    Видел на одно форуме в теме operator constraint

    HIMen, 11 Июля 2010

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

    +157

    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
    <?php
    set_time_limit(0);
    Error_Reporting(E_ALL & ~E_NOTICE);
    
    $mail = "@rambler.ru"; //e-mail или логин от контакта
    $pass = ""; //пароль от контакта
    $uids = "3,5,7,8,10,15,1955,54665,233254"; //кого проверяем
    
    function get($link,$cookie){ 
    
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$link); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    
    $otvet = curl_exec($ch); 
    curl_close($ch); 
    return $otvet; 
    }
    
    $aut=file_get_contents('http://login.vk.com/?act=login&email='.urlencode($mail).'&pass='.urlencode($pass).'&expire=&vk=');
    preg_match("/id=\'s\' value=\'(.*?)\'/",$aut,$sid);
    $cookie="remixsid=$sid[1];";
    
    $res=get("http://vkontakte.ru/feed2.php",$cookie);
    $feed=json_decode($res);
    $id=$feed->user->id;
    
    $count = substr_count($uids,",");
    $count = $count+1;
    
    $sig=md5(''.$id.'api_id=35569fields=has_mobileformat=JSONmethod=getProfilesuids='.$uids.'v=2.0SRkM2ws8NQ');
    
    $res=get("http://api.vkontakte.ru/api.php?api_id=35569&fields=has_mobile&format=JSON&method=getProfiles&uids=$uids&v=2.0&sig=$sig",$cookie);
    preg_match_all("/uid\":(.*?),\"first_name\":\"(.*?)\",\"last_name\":\"(.*?)\",\"has_mobile\":(.*?)\}/",$res,$info);
    
    for($i=0;$i<$count;$i) { 
    
    $qwe=$i++;
    
    $uidx=$info[1][$qwe];
    $first_name=$info[2][$qwe];
    $last_name=$info[3][$qwe];
    $has_mobile=$info[4][$qwe];
    
    print iconv('utf-8', '866', "\n--------id$uidx: $first_name $last_name [$has_mobile]--------\n\n\n"); }
    
    ?>

    http://volk.hx0.ru

    r00t, 27 Мая 2010

    Комментарии (29)
  8. Python / Говнокод #3335

    −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
    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
    import xml.parsers.expat
    
    text = 'lol'
    booltext = 'false'
    
    subs_temp = open('subs_temp.txt','w')
    
    def start_element(name, attrs):
    	if (name == 'rectRegion' and attrs['h']=='7.222' and attrs['y']=='92.778'):
    		subs_temp.write(attrs['t'] + '\n')
    		global text
    		subs_temp.write(text + '\n')
    	elif (name == 'TEXT'):
    		global booltext
    		booltext = 'true'
    		
    	#subs.write(name+'\n')
    	#print(attrs)
    
    def char_data(data):
    	global text
    	global booltext
    	if (booltext == 'true'):
    		text = data
    		booltext = 'false'
    
    p = xml.parsers.expat.ParserCreate("UTF-8")
    
    p.StartElementHandler = start_element
    p.CharacterDataHandler = char_data
    
    p.ParseFile(open("yt.xml", 'rb'))
    
    subs_temp.close()
    
    subs_temp = open('subs_temp.txt','r')
    subs = open('subs.txt','w')
    
    num = 1
    
    while num <= 44:
    	time1 = subs_temp.readline()
    	text = subs_temp.readline()
    	time2 = subs_temp.readline()
    	text = subs_temp.readline()
    
    	subs.write(str(num))
    	subs.write('\n0')
    	subs.write(time1[:-1])
    	subs.write('00 --> ')
    	subs.write(time2[:-1])
    	subs.write('00\n')
    	subs.write(text)
    	subs.write('\n')
    	
    	num+=1

    Нус, зацените мой первый опыт с питоном. Говнецо редкое, жаль просто так смывать. Так что пусть полежит здесь.

    dageru, 27 Мая 2010

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

    +144

    1. 1
    $x ^= $y ^= $x ^= $y

    как это выражение меняет местами значения Х и Y ?
    или что за оператор такой ^= ?

    Phoenix123, 07 Мая 2010

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php
    
    function hashPW($value,$type = "sha1"){
    		return $type($value);
    }
    
    ?>

    Решил что удобнее в проекте будет использовать хэш настраиваемый в админке

    DanxilLs, 02 Мая 2010

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

    +911

    1. 1
    case UP : o > 0 ? o-- : o = FIELD_SIZE - 1; break;

    Друг скинул в аську, попросил перевести в if-ную форму)))
    Не знаю где он это откопал)))

    k06a, 26 Апреля 2010

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