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

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

    +13

    1. 1
    class TSettingGrouperator

    Говногость, 12 Ноября 2012

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

    +60

    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
    function GetEndUTCTime($stime) {
            $ddd = split('-', $stime);
            if ($ddd[1] == '01')
                $ddd[1] = '02'; else if ($ddd[1] == '02')
                $ddd[1] = '03'; else if ($ddd[1] == '03')
                $ddd[1] = '04'; else if ($ddd[1] == '04')
                $ddd[1] = '05'; else if ($ddd[1] == '05')
                $ddd[1] = '06'; else if ($ddd[1] == '06')
                $ddd[1] = '07'; else if ($ddd[1] == '07')
                $ddd[1] = '08'; else if ($ddd[1] == '08')
                $ddd[1] = '09'; else if ($ddd[1] == '09')
                $ddd[1] = '10'; else if ($ddd[1] == '10')
                $ddd[1] = '11'; else if ($ddd[1] == '11')
                $ddd[1] = '12'; else if ($ddd[1] == '12') {
                $ddd[1] = '01';
                $ddd[0]++;
            } $result = $ddd[0] . '-' . $ddd[1] . '-' . $ddd[2];
            return $result;
        }
    
    // Returns submitted time in appropriate format (e.g. 2009-04-01T09:43:25.5244704Z)

    Документацыя по API SmartMove.

    Hits, 31 Октября 2012

    Комментарии (6)
  4. JavaScript / Говнокод #12030

    +160

    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
    jQuery('#items > div > a > img').hover(
        function(){
          jQuery(this).css('border', 'solid 1px gray');
          var pos = jQuery(this).parent().parent().position().left;
          var posTop = jQuery(this).parent().parent().position().top;
          jQuery(this).parent().parent().css('left', (pos-1));
          jQuery(this).parent().parent().css('top', (posTop-1));
        },
        function(){
          jQuery(this).css('border', '0');
          var pos = jQuery(this).parent().parent().position().left;
          var posTop = jQuery(this).parent().parent().position().top;
          jQuery(this).parent().parent().css('left', (pos+1));
          jQuery(this).parent().parent().css('top', (posTop+1));
        }
      )

    Вот такой вот неожиданный вариант отображения рамочек вокруг изображений в галерее при наведении курсора мыши. Наткнулся в проекте, над которым сейчас работаю.

    nbspjr, 30 Октября 2012

    Комментарии (6)
  5. Куча / Говнокод #12021

    +133

    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
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {		
    	// ...skipped...
    });  
    </script>
    <!-- end script vert menu -->
    
    <!-- spoiler -->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"> </script>
    <script type="text/javascript"> 
    $(document).ready(function(){ 
    // ...skipped...
    });
    </script>
    <!-- spoiler -->
    
    <!-- up-->
    <script language="JavaScript" type="text/javascript"
    src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
    </script><!--up-->
    <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'></script>
    <script type="text/javascript" src="ajax.js"></script>
    <!-- gallery -->  
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>

    jQuery в организме не хватает?..

    telnet, 29 Октября 2012

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

    +117

    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
    class traffic {
            function traffic() {
                global $mosConfig_live_site;
    
                $remhost = @$_SERVER['REMOTE_HOST'];
                if (strpos($remhost,".") != false) { $remhost = strtok($remhost,"."); }
                $remhost = strtoupper($remhost);
    
                $mb = @$_COOKIE['mb'];
                //if ($mb ==  -1 || $mb ==  0) { return; }
                if (isset($mb)) {
                    if ($mb < 300) { $colormb = "green"; }
                else { $colormb = "red"; }
                    $t =<<<TXT
                     <center><b> 
                    <font size="4" style="line-height: 40px"><font color="$colormb"><p>eto prosto tak</p> $mb </font> </font> 
                    <br><font size="2" color="blue" style="line-height: 20px">$remhost</font></br></b></center>
                    <font color="brown" size="1" style="line-height: 8px">* -01:00</font> 
    TXT;
                    echo $t ;
                    echo @$_SERVER['HTTP_USER_AGENT'];
                    return;
                 }
                $headers = apache_request_headers(); //    
                if (!isset($headers['Authorization'])) {     //    
                  header('HTTP/1.0 401 Unauthorized');     //    
                  header('WWW-Authenticate: NTLM');      //    - NTLM
                  return; } //   
    
                //     
                if (substr($headers['Authorization'],0,5) == 'NTLM ') { // ,   NTLM-
                  $chain = base64_decode(substr($headers['Authorization'],5)); //   
                  switch (ord($chain{8})) { //     
                    case 3: //  5 -   type-3
                      foreach (array('LM_resp','NT_resp','domain','user','host') as $k=>$v) {
                        extract(unpack('vlength/voffset',substr($chain,$k*8+14,4)));
                        $val = substr($chain,$offset,$length);
                        //echo "$v: ".($k<2 ? hex_dump($val) : iconv('UTF-16LE','CP1251',$val))."<br>\r\n";
                        switch ($k) {
                             case 2:
                                $domain = iconv('UTF-16LE','CP1251',$val);
                              case 3:
                                  $username = iconv('UTF-16LE','CP1251',$val);
                              //case 4:
                              //    $hostname = iconv('UTF-16LE','CP1251',$val);
                              }
                      }
                      $sdlt = fopen("http://sdlt/sdlt.php?username=".$username."&domainname=".$domain."&key=4125896370","r");
                      $str = fscanf($sdlt,"%s");
                      fclose($sdlt);
                      list($mb) = $str;
                      if ($mb ==  -1) { return; }
                      setcookie("mb",$mb,time()+64800);
                      if ($mb < 300) { $colormb = "green"; }
                      else { $colormb = "red"; }
    $t =<<<TXT
                    <center><b> -<br>  :<br>
                    <font size="4" style="line-height: 40px"><font color="$colormb"><p>privet ilya!!!!!!!!!!!!!!!!!!!!!! </p> $mb </font><font color="brown">*</font></font><br>
                    <font style="line-height: 24px">  :</font><br>
                    <font size="1" color="blue" style="line-height: 20px">$remhost ($domain - $username)</font><br></b></center>
                    <font color="brown" size="1" style="line-height: 8px">* -  01:00</font>
    
    TXT;
                      echo $t;
                      
                      return;
                  case 1: //  3
                    //if (ord($chain{13}) == 0xB2 || ord($chain{13}) == 0x8201) { //   NTLM 0xb2   13   type-1:
                      $chain = "NTLMSSP\x00".// 
                                 "\x02" /*   */ ."\x00\x00\x00\x00\x00\x00\x00".
                                 "\x28\x00" /*    */ ."\x00\x00".
                                 "\x01\xB2" /*  */ ."\x00\x00".
                                 "\x00\x02\x02\x02\x00\x00\x00\x00". // nonce
                                 "\x00\x00\x00\x00\x00\x00\x00\x00";
                      header('HTTP/1.0 401 Unauthorized');
                      header('WWW-Authenticate: NTLM '.base64_encode($chain)); //   type-2
                      return;// }
                    }
                  }
                }
            }
        }
    
    $traffic=new traffic();

    безжалостный и беспощадный ООП в php

    Vasiliy, 22 Октября 2012

    Комментарии (6)
  7. JavaScript / Говнокод #11940

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function ValidatePhone(strphone)
    {
        for(j=0;j<strphone.length;j++)
        {
        var cut;
        cut=strphone.charAt(  j )
        if(cut!=0&&cut!=1&&cut!=2&&cut!=3&&cut!=4&&cut!=5&&cut!=6&&cut!=7&&cut!=8&&cut!=9&&cut!="("&&cut!=")"&&cut!=".")
          return false;
     
        } 
        return true;
    }

    классика

    bytes, 16 Октября 2012

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

    +46

    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
    // БреДскрамс и выделение текущих категорий
    
    		if($level==1){	
    			$query = $conn->newStatement("SELECT * FROM item_level WHERE id=:parent_id:");
    			$query->setInteger('parent_id', $parent_id);
    			$data_1ur = $query->getFirstRecord();
    			$this->template->assign('data_1ur', $data_1ur);
    		}
    		if($level==2){
    			// первым делом досается сама категория
    			$query = $conn->newStatement("SELECT * FROM item_level WHERE id=:parent_id:");
    			$query->setInteger('parent_id', $parent_id);
    			$data_2ur = $query->getFirstRecord();
    			$this->template->assign('data_2ur', $data_2ur);
    			
    			// ее родители
    			$query = $conn->newStatement("SELECT * FROM item_level WHERE id=:parent_id:");
    			$query->setInteger('parent_id', $data_2ur['parent_id']);
    			$data_1ur = $query->getFirstRecord();
    			$this->template->assign('data_1ur', $data_1ur);
    		}
    		if($level==3){
    			$query = $conn->newStatement("SELECT * FROM item_level WHERE id=:parent_id:");
    			$query->setInteger('parent_id', $parent_id);
    			$data_3ur = $query->getFirstRecord();
    			$this->template->assign('data_3ur', $data_3ur);
    			
    			$query = $conn->newStatement("SELECT * FROM item_level WHERE id=:parent_id:");
    			$query->setInteger('parent_id', $data_3ur['parent_id']);
    			$data_2ur = $query->getFirstRecord();
    			$this->template->assign('data_2ur', $data_2ur);
    			
    			$query = $conn->newStatement("SELECT * FROM item_level WHERE id=:parent_id:");
    			$query->setInteger('parent_id', $data_2ur['parent_id']);
    			$data_1ur = $query->getFirstRecord();
    			$this->template->assign('data_1ur', $data_1ur);
    		}

    да, да, да...

    nkarakin, 16 Октября 2012

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

    +137

    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
    public List<int> parseInt(string input)
    {
      string res = "";
      int i = 0;
      while (input[i] != ' ')
      {
        res = res + input[i];
        //System.Console.WriteLine(res + " = res[" + i + "]");
        i++;
      }
      i = res.Length - 4;
      List<int> num = new List<int>();
      for (int j = 0; i > -4; i = i - 4, j++)
      {
        try
        {
          num.Add(int.Parse(res.Substring(i, 4)));
        }
        catch (Exception e1)
        {
          try
          {
            num.Add(int.Parse(res.Substring(i + 1, 3)));
          }
          catch (Exception e2)
          {
            try
            {
              num.Add(int.Parse(res.Substring(i + 2, 2)));
            }
            catch (Exception e3)
            {
              num.Add(int.Parse(res.Substring(i + 3, 1)));
            }
          }
        }
      //System.Console.WriteLine(num[j]+" = num["+j+"]");
      }
      return num;
    }

    Опять студенты.
    Задание: реализовать длинную арифметику.

    один из примеров чтения длинного числа

    graph_di5, 16 Октября 2012

    Комментарии (6)
  10. Java / Говнокод #11926

    +93

    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
    package java.util.logging;
    public class XMLFormatter extends Formatter 
    {
        // Append a two digit number.
        private void a2(StringBuffer sb, int x) {
    	if (x < 10) {
    	    sb.append('0');
    	}
    	sb.append(x);
        }
        // Append the time and date in ISO 8601 format
        private void appendISO8601(StringBuffer sb, long millis) {
    	Date date = new Date(millis);
    	sb.append(date.getYear() + 1900);
    	sb.append('-');
    	a2(sb, date.getMonth() + 1);
    	sb.append('-');
    	a2(sb, date.getDate());
    	sb.append('T');
    	a2(sb, date.getHours());
    	sb.append(':');
    	a2(sb, date.getMinutes());
    	sb.append(':');
    	a2(sb, date.getSeconds());
        }
        private void escape(StringBuffer sb, String text) {
    	if (text == null) {
    	    text = "<null>";
    	}
    	for (int i = 0; i < text.length(); i++) {
    	    char ch = text.charAt(i);
    	    if (ch == '<') {
    		sb.append("<");
    	    } else if (ch == '>') {
    		sb.append(">");
    	    } else if (ch == '&') {
    		sb.append("&");
    	    } else {
    		sb.append(ch);
    	    }
    	}
        }
        public String format(LogRecord record) {
    	StringBuffer sb = new StringBuffer(500);
    	sb.append("<record>\n");
    
    	sb.append("  <date>");
    	appendISO8601(sb, record.getMillis());
    	sb.append("</date>\n");
    
    	sb.append("  <millis>");
    	sb.append(record.getMillis());
    	sb.append("</millis>\n");
    
    	sb.append("  <sequence>");
    	sb.append(record.getSequenceNumber());
    	sb.append("</sequence>\n");
    
    	String name = record.getLoggerName();
    	if (name != null) {
    	    sb.append("  <logger>");
    	    escape(sb, name);
    	    sb.append("</logger>\n");
    	}
    
    	sb.append("  <level>"); 
    	escape(sb, record.getLevel().toString());
    	sb.append("</level>\n");
    
    	if (record.getSourceClassName() != null) {
    	    sb.append("  <class>");
    	    escape(sb, record.getSourceClassName());
    	    sb.append("</class>\n");
    	}
    
    	if (record.getSourceMethodName() != null) {
    	    sb.append("  <method>");
    	    escape(sb, record.getSourceMethodName());
    	    sb.append("</method>\n");
    	}
    
    	sb.append("  <thread>");
    	sb.append(record.getThreadID());
    	sb.append("</thread>\n");
     ....

    Я конечно всё понимаю, неоднократно были ситуации когда для скорости сам собирал xml руками.
    Но тут и вовсе такое ощущение будто школьник писал.
    http://kickjava.com/src/java/util/logging/XMLFormatter.java.htm

    3.14159265, 15 Октября 2012

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

    −121

    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
    Функция СоздатьЗапрос(Текст) Экспорт
    	Запрос = Новый Запрос;
    	Запрос.Текст=Текст;
    	Возврат Запрос;
    КонецФункции
    Функция СоздатьМассив() Экспорт
    	Возврат Новый Массив;
    КонецФункции
    Функция СоздатьСоответствие() Экспорт
    	Возврат Новый Соответствие;
    КонецФункции
    Функция СоздатьСтруктуру() Экспорт
    	Возврат Новый Структура;
    КонецФункции
    Функция СоздатьСписокЗначений() Экспорт
    	Возврат Новый СписокЗначений;
    КонецФункции

    Вот такие вот функции (это естественно не все) от OLE-мастера: NewObject - не, не слышал.

    ilya2184, 10 Октября 2012

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