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

    В номинации:
    За время:
  2. Куча / Говнокод #15855

    +143

    1. 1
    2. 2
    Небольшие программки :)
    Советую посмотреть и написать отзыв о любой из них.

    Скачать >> http://coun.at.ua/stuff/1-1-0-122

    Mobac, 28 Апреля 2014

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

    +146

    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
    <?php
    define('STOCK_URL', 'http://govnokod.ru/comments');
    define('REFERER_URL', 'http://govnokod.ru/');
    define('AUTH_COOKIES', 'a:2:{s:9:"PHPSESSID";s:26:"k719c8rqcm85dptista7b7rck7";s:4:"auth";s:32:"0ce5a7d54092aa07e37b88ffbe098135";}');
    define('MODERATED_TEXT', '[color=red][i]Слава «Беркуту»![/i][/color]');
    define('DEFAULT_UA', 'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.16');
    define('POST_HEADERS', "X-Requested-With: XMLHttpRequest\r\nContent-Type: application/x-www-form-urlencoded\r\n");
    define('PONY1', "//ol[@class='posts hatom']/li/h2/a");
    define('PONY2', "//form/div/input[@name='_csrf_token']");
    define('PONY3', "//li[@class='hcomment']/div/a[@class='edit-comment-link']");
    
    function myCookies() {
    	$map_cookies = function($k, $v) {return $k . '='. $v;};
    	return implode('; ', array_map($map_cookies, array_keys(unserialize(AUTH_COOKIES)), unserialize(AUTH_COOKIES)));
    }
    
    function huyarim($url, $referer, $mask, $attr) {
    	$context_options = stream_context_create(array('http' => array(
    	  'method' => 'GET',
    	  'user_agent' => DEFAULT_UA,
    	  'header' => 'Referer: '. $referer . "\r\n" . 'Cookie: ' . myCookies()
    	)));
    	$links = array();
    	$file = @file_get_contents($url, false, $context_options);
    	if ($file) {
    	  $old_libxml_error = libxml_use_internal_errors(true);
    	  $dom = new DOMDocument;
     	  $dom->loadHTML($file);
    	  libxml_use_internal_errors($old_libxml_error);
     	  $domxpath = new DOMXPath($dom);
     	  $filtered = $domxpath->query($mask);
    	  foreach ($filtered as $item) {
    		$links[] = $item->getAttribute($attr);
    	  }
    	}  
    	return $links;
    }
    
    function getList() {return huyarim(STOCK_URL, REFERER_URL, PONY1, 'href');}
    function getCsrf($url) {$tokens = huyarim($url, STOCK_URL, PONY2, 'value'); return $tokens[0];}
    function getComments($url) {return huyarim($url, STOCK_URL, PONY3, 'href');}
    
    function doPost($url, $referer, $token) {
    	$postdata = http_build_query(array(
    	  '_csrf_token' => $token,
    	  'text' => MODERATED_TEXT,
    	  'commentSubmit' => 'Отправить комментарий [Ctrl+Enter]',
    	  'ajax' => 'true'
     	));
    	$context_options = stream_context_create(array('http' => array(
    	  'protocol_version' => 1.1,
    	  'method' => 'POST',
    	  'user_agent' => DEFAULT_UA,
    	  'header' => POST_HEADERS . 'Referer: '. $referer . "\r\n" . 'Cookie: ' . myCookies(),
    	  'content' => $postdata
    	)));
    	return file_get_contents($url, false, $context_options);
    }
    
    $links = getList();
    foreach($links as $link) {
    	$token = getCsrf($link);
    	$comments = getComments($link);
    	foreach($comments as $comment) {
    		if (false !== doPost($comment, $link, $token)) {
    			echo $comment . ' OK' . PHP_EOL;
    		}
    	}
    }

    CURL и PECL_HTTP не нужны. Да, и ООП тоже не нужно.

    inkanus-gray, 19 Февраля 2014

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

    +15

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #define TEST_MODE ON
    
    ...
    
    #ifdef TEST_MODE
    #    include "fake_singelton.h"
    #else
    #    include "work_singelton.h"
    #endif

    оттуда

    LispGovno, 01 Февраля 2014

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

    +149

    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
    <?php 
    	if($_POST['start']>150)
    		die('NULL');
    	$start=$_POST['start'];
    	$end=min($start+$_POST['limit'],150);
    	$k=0;
    	for($i=$start;$i<$end;++$i)
    	{if($k>50)
    		die();
    		$k++;
    		?>
    		
    <div class="table_account bg_color_ta_1">
    ...

    Вот такую гранату я сегодня получил от "выпускника" Харьковского вуза по специализации программирования.
    Тут уже чуток обсуждали http://webimho.ru/topic/5481/

    q10800, 17 Апреля 2013

    Комментарии (65)
  6. Си / Говнокод #12708

    +102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (sscanf(buf, "%d-%d-%d %d:%d:%d %d.%d.%d.%d %s %d.%d.%d.%d %llu %llu %llu %llu %d %d %d",
               &r->year,&r->month,&r->day,&r->hour,&t5,&t6,&s1,&s2,&s3,&s4,&r->iface,&d1,&d2,&d3,&d4,
               &r->packets_out,&r->bytes_out,&r->packets_in,&r->bytes_in,&r->proto,&r->sport,&r->dport)<22) {
        printf("Syntax error at line %u\n", t->count + 1);
        /* ... some cleanup ...*/
        return 0;
    }

    Вот так я читал строку из текстового файла в моем первом боевом проекте.

    bormand, 08 Марта 2013

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

    +24

    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
    #include <iostream>
    #define n 1
    int main()
    {
    using namespace std;
    cout << (n < 0 ? 1 : 0)+
    ((n << 1) < 0 ? 1 : 0)+
    ((n << 2) < 0 ? 1 : 0)+
    ((n << 3) < 0 ? 1 : 0)+
    ((n << 4) < 0 ? 1 : 0)+
    ((n << 5) < 0 ? 1 : 0)+
    ((n << 6) < 0 ? 1 : 0)+
    ((n << 7) < 0 ? 1 : 0)+
    ((n << 8) < 0 ? 1 : 0)+
    ((n << 9) < 0 ? 1 : 0)+
    ((n << 10) < 0 ? 1 : 0)+
    ((n << 11) < 0 ? 1 : 0)+
    ((n << 12) < 0 ? 1 : 0)+
    ((n << 13) < 0 ? 1 : 0)+
    ((n << 14) < 0 ? 1 : 0)+
    ((n << 15) < 0 ? 1 : 0)+
    ((n << 16) < 0 ? 1 : 0)+
    ((n << 17) < 0 ? 1 : 0)+
    ((n << 18) < 0 ? 1 : 0)+
    ((n << 19) < 0 ? 1 : 0)+
    ((n << 20) < 0 ? 1 : 0)+
    ((n << 21) < 0 ? 1 : 0)+
    ((n << 22) < 0 ? 1 : 0)+
    ((n << 23) < 0 ? 1 : 0)+
    ((n << 24) < 0 ? 1 : 0)+
    ((n << 25) < 0 ? 1 : 0)+
    ((n << 26) < 0 ? 1 : 0)+
    ((n << 27) < 0 ? 1 : 0)+
    ((n << 28) < 0 ? 1 : 0)+
    ((n << 29) < 0 ? 1 : 0)+
    ((n << 30) < 0 ? 1 : 0)+
    ((n << 31) < 0 ? 1 : 0)
    << endl;
    return 0;
    }

    Для заданного пятизначного целого числа подсчитать количество его нулей.
    Прямо с экзамена. Преподаватель катается по полу. Не шучу.

    LispGovno, 25 Декабря 2012

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

    +57

    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
    function GetOrderSkidka(&$arrData)
        	{
    	    	if($this->flag_opt){
    	    	 	$arrData['skidka']  = ($this->admin_mode) ? $arrData['skidka'] : 0;
    	    	 	$arrData['allsum']  = $arrData['sum'] - $arrData['skidka'];
    	    	 	return;
    	        }
    	    	if(!$this->flag_in_action){
    	    		$arrData['cnt_s_prod'] = $arrData['cnt'];
    	    	}elseif(in_array($this->flag_action_type,array(2,3))){
    	    		$this->calcCntProd($arrData);
    	    	}else{
    	    		$arrData['cnt_s_prod'] = 0;
    	    	}
    	    	$this->discount->GetOrderSkidka($arrData);
        	}

    Работаю с сайтом, в котором все методы классов работают со своими параметрами таким образом.
    Метод может ничего не возвращать, а вызывать другие методы (которые также могут вызывать какие-то методы),
    которые в зависимости от множества условий меняют переданные по ссылке параметры.
    Итог работы модифицированный параметр- массив. Только XDebug выручает.

    minramilka, 31 Августа 2012

    Комментарии (65)
  9. bash / Говнокод #11534

    −125

    1. 1
    2. 2
    #!/bin/bash
    sed -e 's/^\s*$/\#/gi' < $1| sed -e 's/$/<br>/gi'| awk 'BEGIN { i1=0;print "<html><head><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=Windows-1251\"></head><body>"; } {  gsub(/^#/,"<a name=\"L"i1++"\">L"i1-1"</a>");print } END { for(i=0;i<=i1;i++){ print "<a href=\"#L"i"\">#"i"</a><br\ >"};print "</body></html>" }' > $1.html

    Программа преобразует текстовый файл в html

    AliceGoth, 05 Августа 2012

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

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    <?php
    class Modules_Admin_Parser_Driver_SiteCom implements Modules_Admin_Parser_Interface {
    }
    ?>

    Старый добрый неймспейс

    Zho, 17 Апреля 2012

    Комментарии (65)
  11. Haskell / Говнокод #9598

    −92

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    -- | The unit datatype @()@ has one non-undefined member, the nullary
    -- constructor @()@.
    data () = () deriving Generic
    
    data (,) a b = (,) a b
    . . .
    data (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_ e_ f_ g_ h_ i_ j_ k_ l_ m_ n_ o_ p_ q_ r_ s_ t_ u_ v_ w_ x_ y_ z_ a__ b__ c__ d__ e__ f__ g__ h__ i__ j__
     = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_ e_ f_ g_ h_ i_ j_ k_ l_ m_ n_ o_ p_ q_ r_ s_ t_ u_ v_ w_ x_ y_ z_ a__ b__ c__ d__ e__ f__ g__ h__ i__ j__
        -- deriving Generic
    {- Manuel says: Including one more declaration gives a segmentation fault.
    . . .

    *тяжелый вздох*

    http://www.haskell.org/ghc/docs/latest/html/libraries/ghc-prim-0.2.0.0/src/GHC-Tuple.html#%28%29

    wvxvw, 03 Марта 2012

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