1. PHP / Говнокод #6081

    +167

    1. 1
    2. 2
    $handle = fopen($filename, "a+");
    fwrite($handle, '');

    В цикле таким образом измененяли дату модификации файлов. Существование touch() похоже было неизвестно.

    tkf, 24 Марта 2011

    Комментарии (5)
  2. ActionScript / Говнокод #6080

    −89

    1. 1
    2. 2
    3. 3
    4. 4
    if(b==0){B[b].addChild(ch1)}
    if(b==1){B[b].addChild(ch2)}
    if(b==2){B[b].addChild(ch3)}
    if(b==3){B[b].addChild(ch4)}

    Ну вот так все просто... дело было в три часа утра

    -M-, 24 Марта 2011

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

    +171

    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
    inExp = function (dig, exp) {
    02.if (exp == 1) return alert(dig);
    03.if (exp == 2) return alert(dig*dig);
    04.if (exp == 3) return alert(dig*dig*dig);
    05.if (exp == 4) return alert(dig*dig*dig*dig);
    06.if (exp == 5) return alert(dig*dig*dig*dig*dig);
    07.if (exp == 6) return alert(dig*dig*dig*dig*dig*dig);
    08.if (exp == 7) return alert(dig*dig*dig*dig*dig*dig*dig);
    09.if (exp == 8 ) return alert(dig*dig*dig*dig*dig*dig*dig*dig);
    10.if (exp == 9) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig);
    11.if (exp == 10) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    12.if (exp == 11) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    13.if (exp == 12) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    14.if (exp == 13) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    15.if (exp == 14) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    16.if (exp == 15) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    17.if (exp == 16) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    18.if (exp == 17) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    19.if (exp == 18) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    20.if (exp == 19) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    21.if (exp == 20) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    22.if (exp == 21) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    23.if (exp == 22) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    24.if (exp == 23) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    25.if (exp == 24) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    26.if (exp == 25) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    27.if (exp == 26) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    28.if (exp == 27) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    29.if (exp == 28) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    30.if (exp == 29) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    31.if (exp == 30) return alert(dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig*dig);
    32.}

    Боян не? попалось на глаза в блоге каком-то случайно

    vitaly, 24 Марта 2011

    Комментарии (27)
  4. bash / Говнокод #6078

    −130

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #!/bin/bash
    if [[ -d "$1" ]]; then
            /usr/bin/ls -lad -- "${1}" | awk '$1~/dr.x/{print $3}'                                                                                                  #if user
            gid="`/usr/bin/ls -lnad -- \"${1}\" | awk '{print $4}'`"
            USERS="`/usr/bin/ls -lad -- \"${1}\" | awk '{print $3}'`|`cat /etc/group | nawk -F: -v var2=$gid '$3 == var2 {print $4}' | tail -1`|`cat /etc/passwd | nawk -F: -v var2=$gid '$4 == var2 {print var=var\"|\"$1}' | tail -1`|`niscat group.org_dir | nawk -F: -v var2=$gid '$3 == var2 {print var=var\"|\"$4}' | tail -1`|`niscat passwd.org_dir | nawk -F: -v var2=$gid '$4 == var2 {print var=var\"|\"$1}' | tail -1`|`/usr/bin/ls -lad -- \"${1}\" | awk '{print $3}'`" #owner | group | passwd | niscat group | niscat passwd | owner
            if test "`/usr/bin/ls -lnad -- \"${1}\" | awk '$1~/..r.x[r-]/{print $4}'`";then                                                 #if group
                    echo ${USERS} | sed -e 's/,/|/g' | sed 's/||*/|/g' | nawk -F"|" '{for (i=1;i<=NF;i++) print $i}' | sort | uniq | sed -e '/^$/d' | grep -v "`/usr/bin/ls -lad -- "$1" | awk '{print $3}'`"
            fi
            if test "`/usr/bin/ls -lnad -- \"${1}\" | awk '$1~/r.x$/{print $4}'`";then                                                              #if other
                    niscat passwd.org_dir | cat /etc/passwd - | awk -F: '{print $1}' | sort | uniq | sed -e '/^$/d' | egrep -v "(`echo ${USERS} | sed -e 's/,/|/g' | sed 's/||*/|/g'`)"
            fi
    fi

    Одногрупник написал на баше лабораторную работу

    Ccik, 24 Марта 2011

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

    +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
    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
    class Query {
      protected $baseTable;
      protected $baseTableAlias;
      protected $whereGroup;
    
      protected $joins = array();
      protected $fields = array();
    
      protected $executed = FALSE;
      protected $resource = NULL;
    
    
      function __construct($base_table = 'node', $alias = 'n') {
        $this->whereGroup = new QueryWhereGroup();
        $this->baseTable = $base_table;
        $this->baseTableAlias = empty($alias) ? $base_table : $alias;
      }
    
      function select($fields) {
        settype($fields, 'array');
        foreach ($fields as $alias => $field) {
          if (is_numeric($alias)) {
            $this->fields[] = $field;
          }
          else {
            $this->fields[$alias] = "$field as $alias";
          }
        }
    
        return $this;
      }
    
      /**
       * @param QueryWhereGroup $whereGroup
       * @return Query
       */
      function where($whereGroup) {
        call_user_func_array(array($this->whereGroup, 'cond'), func_get_args());
        return $this;
      }
    
      function createWhereGroup() {
        return new QueryWhereGroup();
      }
    
      function join($table, $alias = NULL, $condition, $join_type = 'INNER') {
        if (!$alias) {
          $alias = $table;
        }
    
        if (is_array($condition)) {
          $condition = 'USING ('. join(', ', $condition) .')';
        }
        if (!preg_match('/^ON|USING/i', $condition)) {
          $condition = 'ON '. $condition;
        }
    
        $this->joins[$alias] = "$join_type JOIN $table $alias $condition";
        return $this;
      }
    
      function compile() {
        $select_fields = join(', ', array_unique($this->fields));
        $joins_list = join("\n", $this->joins);
        $where_conditions = $this->whereGroup->compile();
    
        if (!empty($where_conditions)) {
          $where_conditions = 'WHERE '. $where_conditions;
        }
    
        return "SELECT $select_fields FROM {{$this->baseTable}} {$this->baseTableAlias} \n $joins_list $where_conditions";
      }
    
      function args() {
        return $this->whereGroup->args;
      }
    
      function execute() {
        return db_query($this->compile(), $this->args());
      }
    
      function fetchAll() {
        $res = $this->execute();
        while($row = db_fetch_object($res)) {
          $rows[] = $row;
        }
        return $rows;
      }
    }

    построитель запросов (drupal 6)
    wheregroup здесь http://govnokod.ru/6076

    vectoroc, 23 Марта 2011

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

    +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
    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
    class QueryWhereGroup {
      public $groupOp = 'AND';
      public $args = array();
      public $conditions = array();
    
      function cond($field, $value = NULL, $op = '=') {
        if ($value === NULL) {
          $this->conditions[] = $field;
          if (is_object($field) && isset($field->args)) {
            $this->args = array_merge($this->args, $field->args);
          }
        }
        else {
          if (is_numeric($value)) {
            $this->conditions[] = "$field $op %d";
            $this->args[]  = $value;
          }
          elseif (is_array($value)) {
            $placeholders  = db_placeholders($value, is_numeric(current($value)) ? 'int' : 'text');
            $this->conditions[] = "$field  IN ($placeholders)";
            $this->args = array_merge($this->args, $value);
          }
          else {
            $this->conditions[] = "$field $op '%s'";
            $this->args[]  = $value;
          }
        }
    
        return $this;
      }
    
      function compile($wrap = FALSE) {
        $result = join(" $this->groupOp ", $this->conditions);
        if ($wrap && !empty($result)) {
          $result = "(\n$result\n)";
        }
    
        return $result;
      }
    
      function __toString() {
        return $this->compile();
      }
    }

    см. след говнокод

    vectoroc, 23 Марта 2011

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

    +152

    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
    BOOL NAKED CompareCurrentProcess(PCHAR pszName)
    {
        /*
            1. Found PEB
            2. Found _RTL_USER_PROCESS_PARAMETERS
            3. Found _RTL_USER_PROCESS_PARAMETERS->ImagePathName
            4. Convert UNICODE to ANSI
            5. compare strings
        */
        __asm {
            MOV        ESI,ESP                            // SAVE STACK PTR
    
            MOV        EAX,DWORD PTR FS:[0x30]            // eax == PEB
            MOV        EAX,DWORD PTR DS:[EAX+0x10]        // eax == _RTL_USER_PROCESS_PARAMETERS
            ADD        EAX,0x38                        // eax == _RTL_USER_PROCESS_PARAMETERS->ImagePathName
            
            XOR        EDX,EDX                            //
            XOR        ECX,ECX                            //
            XOR        EDI,EDI                            //
                    
            MOV        CL, BYTE PTR [EAX]                // CL = UNICODE_STRING.Length in bytes
            
            SUB        ESP,ECX                            // reserve in stack CL bytes 
                        
            ADD        EAX,4                            // EAX ptr to WCHAR ImagePathName
            MOV        EAX,DWORD PTR [EAX]                // EAX = PWCHAR
    
    next_char:
            CMP        CL,0                            // WCHAR end
            JZ        end;
    
            MOV        DL,BYTE PTR [EAX]                // DL == *(PCHAR)WCHAR
            ADD        EAX,2                            // GOTO next WIDEchar
            MOV        BYTE PTR [ESP],DL                // SAVE char in memory reserved in stack
            INC        ESP                                // pStr++
            INC        EDI                                // pStrLen++
            SUB        CL,2                            // Length--;
            jmp        next_char                        // goto_next;
    end:
            MOV        BYTE PTR [ESP],0                // *pStr = 0; null terminated
            SUB        ESP,EDI                            // pStr = (PCHAR)(pStr - pStrLen)
            
            XOR        EDX,EDX
            XOR        ECX,ECX
    
            mov        ecx,esp                            // ecx = pStr
            mov        edx,esp                            // edx = pStr
    
            //
            // HERE FOUND image file name 
    m_loop:
            cmp        edi,0
            jz        file_founded
    
            cmp        byte ptr [edx],0x5C                // '\'
            JZ        founded;
            inc        edx
            dec        edi
            jmp        m_loop
    
    founded:
            dec        edi
            mov        ecx,edx
            inc        edx
            jmp        m_loop
    
    file_founded:
            push    esi
            inc        ecx
            push    ecx
            push    dword ptr [esi+4]
            call    my_strcmp
    
            pop        esi
            mov        esp,esi
    
            ret        
        }
    }

    Источник: http://www.wasm.ru/forum/viewtopic.php?id=40652
    Что может быть плохого в функции кроме того, что эту задачу можно было бы решить тонной адекватных вариантов?

    ReL, 23 Марта 2011

    Комментарии (16)
  8. SQL / Говнокод #6074

    −860

    1. 1
    2. 2
    3. 3
    4. 4
    update dv_main set dv_main.tp_id = 2 where dv_main.uid in
    (SELECT dv.uid FROM (select * from dv_main) as dv
    LEFT JOIN users u ON (u.uid = dv.uid)
    WHERE dv.tp_id = 1);

    Вот так вот саппорт одного биллинга посоветовал массово сменить тарифный план пользователям...

    NiTr0man, 23 Марта 2011

    Комментарии (3)
  9. Куча / Говнокод #6073

    +122

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    http://developers.face.com/docs/api/faces-detect/
    Обратите внимание:
    confirmed: false
    но
    value: "false"

    Душевно так, не? :)

    wvxvw, 23 Марта 2011

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

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ( $arOrderProps['CODE'] == 'BIRTHDATE_MONTH'
    	  || $arOrderProps['CODE'] == 'DOCEXPIRATION_MONTH'
    	  || $arOrderProps['CODE'] == 'BIRTHDATE_DAY'
    	  || $arOrderProps['CODE'] == 'DOCEXPIRATION_DAY' )
    {
    	if ( $curVal[0] == '0' )
    	{
    	$curVal = $curVal[1];
    	}
    }

    Преобразование месяца или дня, например 05 => 5. var_dump( $curVal ) => string(2) "20"

    wwwguru, 23 Марта 2011

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