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

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

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php 
    
    $visitor = $_SERVER['REMOTE_ADDR']; 
    if (preg_match("/217.66.26.85/",$visitor))  
    {header('Location: http://site.ru/page.html');} 
    
    ?>

    http://forum.searchengines.ru/showpost.php?p=7312251&postcount=1

    GoodTalkBot, 22 Июля 2010

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $razn = mktime(0,0,0,$m,$d,$y); 
    
    $vozrast = (time() - $razn) / 31536000; 
    
    return explode(".",$vozrast);

    из кода одного крупного сайта, сделанного на заказ

    Мартин, 16 Июля 2010

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

    +158

    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
    switch(filter)
       {
          case FILTER_SPECIAL:
          {
    
             if ( ( u8Direction >= 0xF0 ) || ( u8Direction <= 0x0F ) )
             {
                return 0x0;
             }
             else if ( ( u8Direction >= 0x10 ) && ( u8Direction <= 0x2F ) )
             {
                return 0x2;
             }
             else if ( ( u8Direction >= 0x30 ) && ( u8Direction <= 0x4F ) )
             {
                return 0x4;
             }
             else if ( ( u8Direction >= 0x50 ) && ( u8Direction <= 0x7F ) )
             {
                return 0x6;
             }
             else if ( u8Direction == 0x80 )
             {
                return 0x8;
             }
             else if ( ( u8Direction >= 0x81 ) && ( u8Direction <= 0xAF ) )
             {
                return 0xA;
             }
             else if ( ( u8Direction >= 0xB0 ) && ( u8Direction <= 0xCF ) )
             {
                return 0xC;
             }
             else if ( ( u8Direction >= 0xD0 ) && ( u8Direction <= 0xEF ) )
             {
                return 0xE;
             }
             break;
          }
    
          case FILTER_NORMAL:
          --//--
          break;
          case FILTER_BACKWARD_DIRECTION:
          --//--
         break;
      }

    Сферический индокод в вакууме

    Zielscheibe, 16 Июля 2010

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

    +129

    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
    for i in 14 15 27 29 38; do # make a sed string to replace special characters
        hexval=$(printf \\\\x%02x $i)
        sedstr=$sedstr"s/'$hexval/chr($i)||'/g;s/$hexval'/'||chr($i)/g;s/$hexval/'||chr($i)||'/g;"
    done
    
    cat <<EOF | sqlplus -S $DB_LOGIN | sed $sedstr | awk -v dbdir=db/data '{print > dbdir"/"$3".sql"}'
    $SPINIT
    BEGIN
      FOR i IN (SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE='TABLE' ORDER BY OBJECT_NAME) LOOP
        DECLARE
          all_cols VARCHAR2(32767) := '';
          TYPE data_cur_type IS REF CURSOR;
          data_cur data_cur_type;
          ins_str VARCHAR2(32767);
        BEGIN
          FOR j IN (SELECT DISTINCT(COLUMN_NAME) FROM USER_TAB_COLUMNS
                    WHERE TABLE_NAME=i.OBJECT_NAME AND
                    DATA_TYPE IN ('VARCHAR2', 'CHAR', 'NUMBER', 'DATE')
                    ORDER BY COLUMN_NAME) LOOP
            all_cols := all_cols || j.column_name || ',';
          END LOOP;
          IF all_cols is null THEN GOTO end_of_loop; END IF;
          all_cols := RTRIM(all_cols,',');
        
          OPEN data_cur FOR 'select ' ||
           '''INSERT INTO ' || i.object_name || ' (' || all_cols || ') VALUES (' || '''''''||' || replace(all_cols, ',', '||'''''',''''''||') || '||'''''');''' ||
           ' from ' || i.object_name || ' order by ' || all_cols;
          LOOP
            FETCH data_cur INTO ins_str;
            EXIT WHEN data_cur%NOTFOUND;
            dbms_output.put_line(ins_str);
          END LOOP;
          CLOSE data_cur;
        END;
    <<end_of_loop>> NULL;
      END LOOP;
    END;
    /
    EOF

    Проблеме экранирования посвящается.
    На стыке технологий: экспорт данных из БД в виде insert-ов. Там еще есть awk-шный код по разбору всего, что получилось, но он не такой ужасный.
    Автор я, если чо:)

    nil, 13 Июля 2010

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

    +83

    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
    String error= "TYPE {" + ex.getType() + "} TEXT {" + ex.getText() + "} STACK {" + stringWriter.toString() + "} LOG {" + _localLog + "}";
    if(error.length()>3000)
    {
         error= "TYPE {" + ex.getType() + "} TEXT {" + ex.getText() + "} STACK {" +stringWriter.toString() + "} LOG {" +  "}";
    }
    if(error.length()>3000)
    {
         error= "TYPE {" + ex.getType() + "} TEXT {" + ex.getText() + "} STACK {" +stringWriter.toString().substring(0,Math.min(700, stringWriter.toString().length())) + "} LOG {" +_localLog.substring(0,Math.min(700, _localLog.length()))+  "}";
    }
    if(error.length()>3000)
    {
         error= "TYPE {" + ex.getType() + "} TEXT {" + ex.getText() + "} STACK {" +  "} LOG {" +  "}";
    }
    if(error.length()>3000)
    {
         error= error.substring(0,3000);
    }

    cdf_easy, 02 Июля 2010

    Комментарии (4)
  7. Java / Говнокод #3627

    +96

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public static Entity read(final URI path) {
    	if(!(path.items!= null && (0 < path.items.size()))){
    		assert (false);
    	}
                     //дальше сам метод

    3.14159265, 02 Июля 2010

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

    +125

    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
    try {
    					string url = this.Request.Url.OriginalString;
    
    					string[] surl = Server.HtmlDecode(url).Remove(0, this.Request.Url.OriginalString.IndexOf(this.Request.Url.Query)).Replace("?", "").Split('&');
    
    					foreach (string s in surl) {
    						if (s.Contains("imark=")) {
    							ID_Mark = Convert.ToInt32(s.Replace("imark=", ""));
    							break;
    						}
    					}
    					foreach (string s in surl) {
    						if (s.Contains("imodel=")) {
    							ID_Model = Convert.ToInt32(s.Replace("imodel=", ""));
    							break;
    						}
    					}
    					foreach (string s in surl) {
    						if (s.Contains("imf=")) {
    							ID_Modification = Convert.ToInt32(s.Replace("imf=", ""));
    							break;
    						}
    					}
    
    					foreach (string s in surl) {
    						if (s.Contains("ieng=")) {
    							ID_Engine = Convert.ToInt32(s.Replace("ieng=", ""));
    							break;
    						}
    					}
    					foreach (string s in surl) {
    						if (s.Contains("ikpp=")) {
    							ID_KPP = Convert.ToInt32(s.Replace("ikpp=", ""));
    							break;
    						}
    					}
    					foreach (string s in surl) {
    						if (s.Contains("iGa=")) {
    							iGa = Convert.ToInt32(s.Replace("iGa=", ""));
    							break;
    						}
    					}
    
    					using (DBAccess da = new DBAccess()) {
    						var q = da.ContentListByModelId(ID_Model);
    						repContent.DataSource = q;
    						repContent.DataBind();
    					}
    				} catch {
    					Response.Redirect(Resources.Resource.PageNotFoundURL);
    					return;
    				}

    Back, 21 Июня 2010

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

    +103

    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
    program lab15;
     uses crt;
     const nmax=100;
     var z,i,j,k,n,m:integer;
         pr:boolean;
         stolb:boolean;
     sum:array[1..nmax] of integer;
     A:array[1..nmax,1..nmax] of integer;
    
     procedure swap(var a,b:integer);
     var c:integer;
     begin
     c:=0;
     c:=a;
     a:=b;
     b:=c;
     end;
    
     function prostoe(x:integer):boolean;
     var i:integer;
         p:boolean;
         begin
     x:=abs(x);
     p:=false;
     if x>1 then p:=true;
     for i:=2 to x-1 do
     if x mod i=0 then p:=false;
     prostoe:=p
     end;
    
    
     begin
     z:=0;
     stolb:=false;
     pr:=false;
       clrscr;
        write('n= ');
        readln(n);
        write('m= ');
        readln(m);
        for i:=1 to n do
          for j:=1 to m do
            read(A[i,j]);
        for i:=1 to n do
        sum[i]:=0;
        for i:=1 to n do
         for j:=1 to m do
           sum[i]:=sum[i]+abs(a[i,j]);
             for i:=1 to n do
              for j:=1 to m do
               if prostoe(a[i,j])=true then pr:=true;
    
             for i:=1 to m-1 do
             begin
               for j:=i+1 to m do
               begin
               z:=0;
                for k:=1 to n do
                 begin
                   if a[k,i]=a[k,j] then z:=z+1;
                   if z=n then stolb:=true;
                 end;
               end;
             end;
    
                if (pr=true) and (stolb=true) then
                begin
                   for i:=1 to n-1 do
                   for j:=i+1 to n  do
                     if sum[i]>sum[j] then begin
                     swap(sum[i],sum[j]);
                     for k:=1 to m do
                       swap(a[i,k],a[j,k]);
                     end;
                end;
    
      writeln('stolbec= ', stolb);
      writeln('prostoe= ', pr);
    
      for i:=1 to n do
      begin
      writeln;
      for j:=1 to m do
      write(a[i,j], ' ');
      end;
        readkey;
        end.

    basic, 14 Июня 2010

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    QString sq(int deep, QString table, QString field, bool fin = false){
         if(fin) return sq(deep, table, field)+ ";";
         if(!deep) return "select min(" + field + ") from " + table;
        return "select " + field + " from " + table + " where " + field + " in(" + sq(deep-1, table, field)  + ")";
    }

    Так изнутри клиентского кода двоичным поиском выясняется, какое у БД ограничение на количество вложенных подзапросов.

    kit, 14 Июня 2010

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

    +115

    1. 1
    <%=Convert.ToDateTime(item.CreatedOnDate).ToString("D", new System.Globalization.CultureInfo(System.Globalization.CultureInfo.CurrentCulture.ToString()))%>

    Кусок кода, который отображает некую дату

    phoenixx, 13 Июня 2010

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