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

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

    −153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    - (void)dealloc {
        LandscapeNote *tempCell;
        for (NSInteger i = 0; i < [_scrollView.subviews count]; i++) {
            tempCell = [_scrollView.subviews objectAtIndex:i];
            [tempCell removeFromSuperview];
        }
        [notesArray release];
        [self viewDidUnload];
        [super dealloc];
    }

    смотрим название метода...

    kilovata, 05 Мая 2012

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

    +90

    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
    if(!empty($_POST))
    {
    	include("dbconnect.php");
    
    	$shown_name=$_POST['shown_name'];
    	$username=$_POST['username'];
    	$header=$_POST['header'];
    	$text=$_POST['text'];
    
    	$date_array=getdate(time());
    
    	$date=$date_array['hours'].":".$date_array['minutes'].":".$date_array['seconds']." ".$date_array['weekday']." ".$date_array['mday']." ".$date_array['month']." ".$date_array['year'];
    
    
    	$filename=$date_array['hours']."-".$date_array['minutes']."-".$date_array['seconds']."-".$date_array['mday'].$date_array['month']."-".$date_array['year']."-".$username.".php";
    
    	$path="posts/".$filename;
    
    	$addpost="INSERT INTO posts(author, header, text, date, path) VALUES ('$shown_name', '$header', '$text', '$date', '$path')";
    	$add=$db->prepare($addpost);
    	$add->execute();
    
    
    
    
    	$file=fopen($path, 'w');
    	$content="<?php \$shown_name=\"".$shown_name."\"; \$header=\"".$header."\"; \$text=\"".$text."\";  include(\"template.html\"); ?>";
    
    	$write=fwrite($file, $content);
    
    	fclose($file);
    
    
    	header('Location: index.php');
    	$db=null;
    }

    Добавление поста в блог. Радует каждая строчка.

    nucleartux, 02 Мая 2012

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

    +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
    86. 86
    87. 87
    88. 88
    89. 89
    class Auth_Yadis_ParanoidHTTPFetcher extends Auth_Yadis_HTTPFetcher {
        function get($url, $extra_headers = null)
        {
        /* неcущественное пропущено */
                if (defined('CURLOPT_NOSIGNAL')) {
                    curl_setopt($c, CURLOPT_NOSIGNAL, true);
                }
    
                if (!$this->allowedURL($url)) {
                    Auth_OpenID::log("Fetching URL not allowed: %s",
                                     $url);
                    return null;
                }
    
                curl_setopt($c, CURLOPT_WRITEFUNCTION,
                            array($this, "_writeData"));
                curl_setopt($c, CURLOPT_HEADERFUNCTION,
                            array($this, "_writeHeader"));
    
                if ($extra_headers) {
                    curl_setopt($c, CURLOPT_HTTPHEADER, $extra_headers);
                }
    
                $cv = curl_version();
                if(is_array($cv)) {
                  $curl_user_agent = 'curl/'.$cv['version'];
                } else {
                  $curl_user_agent = $cv;
                }
                curl_setopt($c, CURLOPT_USERAGENT,
                            Auth_OpenID_USER_AGENT.' '.$curl_user_agent);
                curl_setopt($c, CURLOPT_TIMEOUT, $off);
                curl_setopt($c, CURLOPT_URL, $url);
    
                if (defined('Auth_OpenID_VERIFY_HOST')) {
                    // set SSL verification options only if Auth_OpenID_VERIFY_HOST
                    // is explicitly set, otherwise use system default.
                    if (Auth_OpenID_VERIFY_HOST) {
                        curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
                        curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
                        if (defined('Auth_OpenID_CAINFO')) {
                            curl_setopt($c, CURLOPT_CAINFO, Auth_OpenID_CAINFO);
                        }
                    } else {
                        curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
                    }
                }
    
                curl_exec($c);
        /* неинтересное пропущено */
        }
        
        function post($url, $body, $extra_headers = null)
        {
            if (!$this->canFetchURL($url)) {
                return null;
            }
    
            $this->reset();
    
            $c = curl_init();
    
            if (defined('CURLOPT_NOSIGNAL')) {
                curl_setopt($c, CURLOPT_NOSIGNAL, true);
            }
    
            curl_setopt($c, CURLOPT_POST, true);
            curl_setopt($c, CURLOPT_POSTFIELDS, $body);
            curl_setopt($c, CURLOPT_TIMEOUT, $this->timeout);
            curl_setopt($c, CURLOPT_URL, $url);
            curl_setopt($c, CURLOPT_WRITEFUNCTION,
                        array($this, "_writeData"));
    
            if (defined('Auth_OpenID_VERIFY_HOST')) {
                // set SSL verification options only if Auth_OpenID_VERIFY_HOST
                // is explicitly set, otherwise use system default.
                if (Auth_OpenID_VERIFY_HOST) {
                    curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
                    curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
                    if (defined('Auth_OpenID_CAINFO')) {
                        curl_setopt($c, CURLOPT_CAINFO, Auth_OpenID_CAINFO);
                    }
                } else {
                    curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
                }
            }
    
            curl_exec($c);
    /* to be continued */

    Фрагмент едва ли не самой популярной библиотеки OpenID, а именно клиентской части: http://janrain.com/openid-enabled/
    Всё бы было хорошо, но залогиниться, используя лайвджорналовский опенайдишник, не получается. По форумам поползли слухи, что ЖЖ не полностью поддерживает протокол OpenID (хотя протокол разработал Фицпатрик, один из создателей LiveJournal); что он метод POST не поддерживает, поэтому его нужно менять на GET; предлагались совершенно безумные хаки, которые на самом деле не работают...

    А ларчик просто открывался. Для поддержки ЖЖ достаточно в приведённый код добавить пару строк. Открыть спойлер или кто-нибудь угадает?

    inkanus-gray, 25 Апреля 2012

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

    +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
    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
    $USER_ID = $_GET['user_id']; 
          $API_METHOD = $_GET['method']; 
          
          $Errors = array('Error#001' => 'Undefined data in request!');
          
          switch($API_METHOD)
          {
            case 'get_user_name_by_id':
              echo EncodeJSON(UserAPI::GetUserNameByID($USER_ID));
              break;  
              
            case 'get_user_status_by_id':
              echo EncodeJSON(UserAPI::GetUserStatusByID($USER_ID));
              break;
                
            default:
              echo $Errors['Error#001'];
              break; 
          }
            class UserAPI //test
            {
               function GetUserNameByID($ID)
               {
                  $SqlQuery = mysql_query("SELECT displayname FROM engine4_users WHERE user_id='$ID'");
                  $Response = mysql_fetch_array($SqlQuery);
                  $Result = array('UserName'=>$Response['displayname']);
                  return $Result;
               }
               
               function GetUserStatusByID($ID)
               {
                  $SqlQuery = mysql_query("SELECT status FROM engine4_users WHERE user_id='$ID'");
                  $Response = mysql_fetch_array($SqlQuery);
                  $Result = array('UserStatus'=>$Response['status']);
                  return $Result; 
               }
            }
            
            function EncodeJSON($arr) {
            $parts = array();
            $is_list = false;
            
            if (!is_array($arr)) return;
            if (count($arr)<1) return '{}';
            $keys = array_keys($arr);
            $max_length = count($arr); 
                    
            if(($keys[0] == 0) and ($keys[$max_length] == $max_length)) {
                $is_list = true;
                for($i=0; $i<count($keys); $i++) { 
                    if($i != $keys[$i]) { 
                        $is_list = false; 
                        break;
                    }
                }
            }
            foreach($arr as $key=>$value) {
                if(is_array($value)) { 
                    if($is_list) $parts[] = array2json($value);
                    else $parts[] = '"' . $key . '":' . array2json($value);
                } else {
                    $str = '';
                    if(!$is_list) $str = '"' . $key . '":';
                    if(is_numeric($value)) $str .= $value; 
                    elseif($value === false) $str .= 'false'; 
                    elseif($value === true) $str .= 'true';
                    else $str .= '"' . addslashes($value) . '"';
                    $parts[] = $str;
                }
            }
            $json = implode(',',$parts);
            if($is_list) return '[' . $json . ']';
            return '{' . $json . '}';
        }

    Удивительное рядом.

    Govnisti_Diavol, 14 Апреля 2012

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

    +157

    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
    mysql_connect($MYSQL_HOST,$MYSQL_USER,$MYSQL_PASSWORD) OR DIE("Не могу создать соединение "); 
            mysql_select_db($MYSQL_DB_NAME) or die(mysql_error());  
            $query = "SELECT * FROM `Subdivision` WHERE `Checked`=1";  
            $result = mysql_query($query) or die(mysql_error()); 
            $i=0;
            while($row = mysql_fetch_assoc($result))
              {
                $data[$i]=$row;
                $i++;
              }
            $query = "SELECT * FROM `Subdivision` WHERE `Subdivision_Name`='Спорт'";
            $result = mysql_query($query) or die(mysql_error()); 
            $row = mysql_fetch_assoc($result);
            $data[]=$row;
            $data['22']['Subdivision_Name']='Главная (интернет магазин прикольных футболок с надписью)';
            $data['19']['Subdivision_Name']='Креативные футболки с прикольными рисунками';
            $data['2']['Subdivision_Name']='Классные футболки для офиса';
            $data['3']['Subdivision_Name']='Оригинальные студенческие футболки';
            $data['4']['Subdivision_Name']='Самые лучшие футболки sexy';
            $data['6']['Subdivision_Name']='Правильные футболки для админов';
            $data['32']['Subdivision_Name']='Клевые футболки South Park ';
            $data['35']['Subdivision_Name']='Эксклюзивные футболки на хэллоуин'; 
            $array = array(13,9,11,10,12,14,15,16);
            $sub_array = array(33,19,31,38,0,1,2,3,4,5,6,7,8,20,32,35,36,37);
            $sitemap ="<ul>";
            $sitemap.="<li><a href='".$data['22']['Hidden_URL']."'>".$data['22']['Subdivision_Name']."</a></li>"; 
            $sitemap.="<ul>";
            for($i=0;$i<count($sub_array);$i++)
              {
                 $sitemap.="<li><a href='".$data[$sub_array[$i]]['Hidden_URL']."'>".$data[$sub_array[$i]]['Subdivision_Name']."</a></li>"; 
              }
            $sitemap.="</ul>";
            for($i=0;$i<count($array);$i++)
              {
                 $sitemap.="<li><a href='".$data[$array[$i]]['Hidden_URL']."'>".$data[$array[$i]]['Subdivision_Name']."</a></li>"; 
              }
            $sitemap.="</ul>";
            
            return $sitemap;

    комментарии излишни

    freeadler, 13 Апреля 2012

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

    −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
    override public function removeChildAt(index:int):DisplayObject
    {
    var child:DisplayObject = getChildAt(index);
    
    removingChild(child);
    
    $removeChild(child);
    
    childRemoved(child);
    
    return child;
    }

    kyzi007, 05 Апреля 2012

    Комментарии (5)
  8. Python / Говнокод #9864

    −97

    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
    for digest in li:
    
        s = 1
        i = 0
        j = 1
    
        while i <= 4:
    
            s = int(digest[i:j]) * s
    
            i += 1
            j += 1
    
        li2.append(s)

    Вычисление произведения пяти чисел
    li = список строк вида "01234"

    Yurik, 04 Апреля 2012

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

    −115

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
    {
        NSArray* headers = [[NSArray alloc] initWithObjects:@"Friends requests",@"Suggestion friends", nil];
        return [headers objectAtIndex:section];
        [headers release];
    }

    Заставляем проц думать о вченом вопросе: "быть или не быть". И потихоньку съедаем память.

    infog, 04 Апреля 2012

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Алгоритм отправки комментария на Govnokod.ru
    
    Если рукой клацнули по кнопочке "Отправить", то:
        проверь, правильно ли введена капча
        ...
        ...
        ...
    
    Если воспользовались хоткеем Ctrl+Enter
        Забей на всё, и сразу пости коммент
        PROFIT!

    Оно чертовски логично. Отсеивает кадров, использующих мышь...

    vistefan, 03 Апреля 2012

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

    +146

    1. 1
    2. 2
    3. 3
    <?php
    $userTimelog->add($userId, 2, strtotime(date('d.m.Y')));
    ?>

    Как можно знать о функции strtotime и не знать о $_SERVER['REQUEST_TIME'] или time()? :D

    miraage, 03 Апреля 2012

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