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

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

    +163

    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
    <?php  //utf-8
    ...
    pre($_POST);
    $name=preg_replace('/[^А-Яа-я \-0-9A-Za-z]/sui','',$_POST['name']);
    $tel=preg_replace('/[^0-9\+\-\(\) ]/sui','',$_POST['tel']);
    $email=preg_replace('/[^\-0-9A-Za-z\._\@]/sui','',$_POST['email']);
    $city=preg_replace('/[^А-Яа-я \-0-9A-Za-z]/sui','',$_POST['city']);
    $adress=preg_replace('/<br \/>/sui',' ',nl2br($_POST['adress']));
    $adress=preg_replace('/[^А-Яа-я \-0-9A-Za-z]/sui','',$adress);
    $prim=preg_replace('/<br \/>/sui',' ',nl2br($_POST['prim']));
    $prim=preg_replace('/[^А-Яа-я \-0-9A-Za-z]/sui','',$prim);
    ...
    mysql_query("set character_set_client='utf8'");
    mysql_query("set character_set_results='utf8'");
    mysql_query("set collation_connection='utf8_general_ci'");
    $m=json_decode(trim($_COOKIE['aste_b']));
    $pin=parce_scv('artikul.csv');
    unset($pin[0]);
    
    foreach($pin as $key=>$val){
    	$p[$val[1]]=$val;
    	unset($p[$val[1]][1]);
    }
    $sum=0;
    foreach($m as $key=>$val){ $mm[$key]=$val; }
    ...
    foreach($mm as $key=>$val){
    	$sum=$sum+$p[$key][4]*($val/1000);
    	$s1=$p[$key][4]*$val/1000;
    	if($s1!=0) $out.='<tr><td align="center">'.$p[$key][2].'</td> <td>'.$p[$key][3].'</td> <td>'.(intval($val)).' граммов</td> <td align="center">'.$s1.'</td></tr> ';
    }
    ...
    $sql='INSERT INTO orders SET data=now()';
    mysql_query($sql);
    $id=mysql_insert_id();
    if($id<10) $idp='000'.$id;
    elseif($id<100) $idp='00'.$id;
    elseif($id<1000) $idp='0'.$id;
    
    $sql='UPDATE orders SET num="'.date('Ymd').$idp.'", name="'.$name.'", ..., adress="'.mysql_real_escape_string($adress).'<br>'.mysql_real_escape_string($prim).'", zakaz="'.mysql_real_escape_string($out).'" WHERE id='.$id;
    mysql_query ($sql);
    
    mail($email,'=?windows-1251?B?'.base64_encode(iconv('utf-8','cp1251','магазин')).'?=',iconv('utf-8','cp1251','...'), 
    'MIME-Version: 1.0\r\nContent-Type: text/html; charset=windows-1251 \r\nFrom: =?windows-1251?B?'.base64_encode(iconv('utf-8','cp1251',"сайт.ru")).'?=<info@сайт.ru>');
    
    function pre($in) {
    if(is_array($in)) array_walk($in,'pref'); else $in=htmlspecialchars($in);
    echo '<pre>';
    print_r($in);
    echo '</pre>';
    }
    function pref(&$item1,$key){
    if(is_array($item1)){ array_walk($item1,'pref'); } 
    else { $item1=htmlspecialchars($item1); }
    }
    function parce_scv($in) {
    $in=iconv('cp1251','utf-8',file_get_contents($in));
    $in=preg_replace('/\n\r{0}/sui',' ',$in);
    $in=nl2br($in);
    $in=explode('<br />',$in);
    foreach($in as $key=>$val) {
    $in[$key]=preg_replace('/\s+/sui',' ',trim($val));
    preg_match_all('/./sui',$in[$key].';',$tmp);
    $simv=array_shift($tmp[0]);
    $old_simv=$simv;
    $k=0;
    while(count($tmp[0])>0){
    $k++;
    if($simv!='"'){
    	while($simv!=';'){
    	$out[$key][$k].=$simv;
    	$old_simv=$simv;
    	$simv=array_shift($tmp[0]);
    	}
    } else {
    	while($simv!=';' OR $old_simv!='"'){
    	$out[$key][$k].=$simv;
    	$old_simv=$simv;
    	$simv=array_shift($tmp[0]);
    	}
    }
    $old_simv=$simv;
    $simv=array_shift($tmp[0]);
    $out[$key][$k]=preg_replace('/^"|"$/sui','',$out[$key][$k]);
    $out[$key][$k]=preg_replace('/""/sui','"',$out[$key][$k]);
    $out[$key][$k]=trim($out[$key][$k]);
    }
    }
    return $out;
    }
    ?>

    Решил выставить, ну а вам решать, достоин код этого сайта или нет.

    P.S. кое что убрал (емайлы, ссылки, переводы строк, куски текста заменил на "..."), что бы не было понятно на каком сайте сие "живёт", и вписаться в 4000 символов (хотелось весь код показать).

    beetle, 21 Сентября 2011

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

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ( $fldType[$i] == 10) { 
          eval("\$fldValue[\$i] = \$f_".$fld[$i].";");
        }
        else if ( $fldType[$i] != 6 )  {
          eval("\$fldValue[\$i] = trim((is_array(\$f_".$fld[$i].")?\$_FILES['f_".$fld[$i]."']['tmp_name']:stripslashes(\$f_".$fld[$i].")));");
        }
          
    		if ($fldType[$i]==8) {
    			eval("if (\$f_".$fld[$i]."_day || \$f_".$fld[$i]."_month || \$f_".$fld[$i]."_year || \$f_".$fld[$i]."_hours || \$f_".$fld[$i]."_minutes || \$f_".$fld[$i]."_seconds) \$fldValue[\$i] = sprintf(\"%04d-%02d-%02d %02d:%02d:%02d\",\$f_".$fld[$i]."_year,\$f_".$fld[$i]."_month,\$f_".$fld[$i]."_day,\$f_".$fld[$i]."_hours,\$f_".$fld[$i]."_minutes,\$f_".$fld[$i]."_seconds);");
    		}

    NetCat, я это даже прокомментировать не могу

    nex2hex, 20 Сентября 2011

    Комментарии (14)
  4. Си / Говнокод #7901

    +146

    1. 1
    if ((chlen = wcwidth(CharOf(CHDEREF(ch)))) <= 0) {

    хорошо назвали переменную н курсес 5.9 tty_update.c

    ragim, 19 Сентября 2011

    Комментарии (14)
  5. Ruby / Говнокод #7857

    −96

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <%products = Array.new
      count = Product.count(:conditions => "novelty = 'true'")
      while products.size < 10 do
        products << Product.find(:first, :conditions => "novelty = 'true'",:offset => rand(count))
        products.uniq!
      end-%>

    при количестве новинок меньше 10 получаем бесконечный цикл. счастье в продакшене, там sql запросы не пишутся в лог)

    malleus, 13 Сентября 2011

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

    −90

    1. 1
    2. 2
    def removeDuplicate(store):
        return [x for x in store if x not in locals()['_[1]']]

    Удаление дубликатов в списке, set(store) религия не позволила сделать:)

    morpheuz, 13 Сентября 2011

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

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <!--CAPCHA-->
      <?php
       $input = array ("0283", "0830", "1541", "3510", "7269", "0110", "2500", "4998", "7203", "9480", 
                                "1540", "1581", "1891", "0064", "0128", "0256", "0512", "1024", "2048", "4096");
       $rand_keys = array_rand($input);
       $img = $input[$rand_keys];
       $_SESSION['img'] = $img;
       print ("<img src=\"/images/$img.gif\">"); 
      ?>
             <!--CAPHA answer-->

    понятно и без слов ;)

    tranirk, 12 Сентября 2011

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

    +176

    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
    <a id="hide" href ="javascript:
    var text = $('#ccc').html();
    function hide(){
        $('#ccc').html('');
        $('#hide').attr('href', 'javascript: show(); ');
    }
    function show(){
        $('#ccc').html(text);
        $('#hide').attr('href', 'javascript: hide(); ');
    }
    hide();
    ">Скрыть/Показать</a>
    
    <div id="ccc">скрываемвый текст</div>

    Я думаю комментарии излишни. Я считаю что это идеальный говнокод. И отличная замена $('#ccc').toggle();

    taral, 08 Сентября 2011

    Комментарии (14)
  9. Python / Говнокод #7779

    −182

    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
    HOME_DIR = "/home/user"
    
    LAST_DIR = HOME_DIR + "/.habralast"
    HTML_DIR = HOME_DIR + "/.habr.html"
    SHOW_FIRST_TIME = 5
    n = 1
    new_addr = 0
    count = 0
    
    if os.path.isfile(LAST_DIR):
    	fp = open(LAST_DIR, "r")
    	topic1 = fp.readline()
    	fp.close()
    	last_existed = 1
    else:
    	fp = open(LAST_DIR, "w")
    	topic1 = ""
    	fp.close()
    	last_existed = 0
    
    while(1):
    	if n == 1:
    		url = "habrahabr.ru"
    	else: url = "habrahabr.ru/page" + str(n) + "/"
    	wget = "wget " + url + " -O " + HTML_DIR
    	try:
    		os.system(wget)
    	except:
    		print "Cannot connect to server"
    		sys.exit()
    
    	index = open(HTML_DIR, "r")
    	s = '				  <a href="http://habrahabr.ru/'
    	ss = '						<a'
    	sss = '			<div class="published"><!-- Дата в формате ISO пихается в title -->'
    
    	for i in range(2000):
    		line = index.readline()
    		if s in line:
    			blog_s = line.find('">')
    			blog_e = line.find("</a>")
    			blog = line[blog_s+2:blog_e]
    
    			for j in range(50):
    				line = index.readline()
    				if ss in line:
    					topic_s = line.find('">')
    					topic_e = line.find("</a>")
    					topic = line[topic_s+2:topic_e]
    					if topic.find("</span>") != -1:
    						topic = topic[topic.find("</span>")+7:]
    					if topic != topic1:
    						if new_addr == 0:
    							fp = open(LAST_DIR, "w")
    							fp.write(topic)
    							fp.close()
    							new_addr = 1
    						print "Blog:\t" + blog
    						print "Topic:\t" + topic
    
    						for k in range(100):
    							line = index.readline()
    							if sss in line:
    								line = index.readline()
    								time_s = line.find("<span>")
    								time_e = line.find("</span>")
    								date = line[time_s+6:time_e]
    								print "Date:\t" + date + "\n"
    								notify = "notify-send 'Habrahabr.ru: " + blog + "' '" + topic + "\n<i>" + date + "</i>'"
    								os.system(notify)
    								count += 1
    								if count == SHOW_FIRST_TIME and last_existed == 0:
    									os.system("rm -f " + HTML_DIR)
    									sys.exit()
    								break
    						break
    					else:
    						os.system("rm -f " + HTML_DIR)
    						sys.exit()
    	n += 1
    	index.close()

    http://habrahabr.ru/blogs/python/127806/
    Мне нравится, когда программа/код полностью своя… понимаешь назначение каждой буквы и почему решение именно такое. В данном топике хочу предложить свой парсер топиков Хабрахабра на Python без сторонних библиотек.
    При появлении нового топика — всплывающее окошко сообщает об этом.

    alexoy, 05 Сентября 2011

    Комментарии (14)
  10. Си / Говнокод #7687

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    /* My favorite names for boolean values */
    #define  No	0
    #define  Yes	1
    #define  Maybe	2		/* tri-state boolean, actually */

    Исходный код юниксовой утилиты top. Файл boolean.h.

    danilissimus, 29 Августа 2011

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

    +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
    class CmyBuffaer{};
    
    template< typename TYPE > CmyBuffaer& operator,( CmyBuffaer& buffer, typename TYPE arg);
    
    template<> CmyBuffaer& operator,<double>( CmyBuffaer& buffer, double arg)
    {
      printf("%f",arg);
      return buffer;
    }
    template<> CmyBuffaer& operator,<const char*>( CmyBuffaer& buffer, const char* arg)
    {
      printf("%s",arg);
      return buffer;
    }
    template<> CmyBuffaer& operator,<int>( CmyBuffaer& buffer, int arg)
    {
      printf("%i",arg);
      return buffer;
    }
    //...
    CmyBuffaer(),34.5,"+",54,"+\n";

    CPPGovno, 29 Августа 2011

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