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

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

    +155

    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
    $image = imageCreateFromJpeg("test666.jpg");
    
    $width = imageSX($image);
    $height = imageSY($image);
    
    $colorsR = array();
    $colorsG = array();
    $colorsB = array();
    
    for ($i = 0; $i < $width; $i++) {
    	for ($j = 0; $j < $height; $j++) {
    		
    		$color = imageColorAt($image, $i, $j);
    		list($r, $g, $b) = array_values(imageColorsForIndex($image, $color));
    		
    		if ($r != "255" && $g != "255" && $b != "255") {
    			array_push($colorsR, $r);
    			array_push($colorsG, $g);
    			array_push($colorsB, $b);
    		}
    		
    	}
    }
    
    $middleR = base_convert(round(array_sum($colorsR) / count($colorsR)), 10, 16);
    $middleG = base_convert(round(array_sum($colorsG) / count($colorsG)), 10, 16);
    $middleB = base_convert(round(array_sum($colorsB) / count($colorsB)), 10, 16);
    
    
    echo "<h1>".$middleR.$middleG.$middleB."</h1>"

    Только что "родил": нахождение среднего цвета на картинке для собственных нужд. Поскольку пхп я особо не знал никогда, делал "влом".
    Претендует ли это на звание говнокода?

    Cr@ZyBoY, 17 Сентября 2010

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

    +155

    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
    typedef struct IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING344 : boost::mpl::assert_ {
    
      static boost::mpl::failed ************ (IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING::************ assert_arg()) (T&) {
        return 0;
      }
    } mpl_assert_arg344;
    
    typedef struct IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING375 : boost::mpl::assert_ {
    
      static boost::mpl::failed ************ (IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING::************ assert_arg()) (T&) {
        return 0;
      }
    } mpl_assert_arg375;
    
    template< typename Pred >
    failed ************ (Pred::************
      assert_arg(void (*)(Pred), typename assert_arg_pred<Pred>::type)
      );
    
    template< typename Pred >
    failed ************ (boost::mpl::not_<Pred>::************
      assert_not_arg(void (*)(Pred), typename assert_arg_pred_not<Pred>::type)
      );

    В том что boost'овские библиотеки достаточно хорошо оптимизированы я не сомневаюсь, но от некоторых конструкций я просто охреневаю...

    rudvil, 08 Сентября 2010

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <?php
    $url = $_GET['url'];
    $url = str_replace('http://', '', $url);
    echo '<a href="http://$url">123</a>';
    ?>

    Мартин, 03 Сентября 2010

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

    +155

    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
    /**
         * Обновление информации о пользователе
         *
         * @param integer $user_id
         * @param array $data
         * @return Zend_Db_Statement_Pdo
         */
        public function updateProfile($user_id, $data)
        {
            // TODO: сделать человеческую валидацию
            $params = $keys = array();
    
            if ($data['login'] !== NULL) {
                $keys[] = 'u_login = ?';
                $params[] = $data['login'];
            }
    
            if (Zend_Validate::is($data['email'], 'EmailAddress')) {
                $keys[] = 'u_email = ?';
                $params[] = $data['email'];
            }
    
            if ($data['sname'] !== NULL) {
                $keys[] = 'u_sname = ?';
                $params[] = $data['sname'];
            }
    
            if ($data['name'] !== NULL) {
                $keys[] = 'u_name = ?';
                $params[] = $data['name'];
            }
    
            if ($data['fname'] !== NULL) {
                $keys[] = 'u_fname = ?';
                $params[] = $data['fname'];
            }
    
            if ($data['birthdate'] !== NULL) {
                $keys[] = 'u_birthdate = ?';
                $params[] = $data['birthdate'];
            } else {
                $keys[] = 'u_birthdate = NULL';
            }
    
            if ($data['city'] !== NULL) {
                $keys[] = 'u_c_id = ?';
                $params[] = (int) $data['city'];
            }
    
            if ($data['info'] !== NULL) {
                $keys[] = 'u_info = ?';
                $params[] = $data['info'];
            }
    
            if ($data['sign'] !== NULL) {
                $keys[] = 'u_sign = ?';
                $params[] = $data['sign'];
            }
    
            if ($data['sex'] === 'M' OR $data['sex'] === 'F') {
                $keys[] = 'u_sex = ?';
                $params[] = $data['sex'];
            }
    
            if ($data['subscribe'] === 'on' AND ($data['subtype'] === 'T' OR $data['subtype'] === 'H')) {
                $keys[] = 'u_subscribed = ?';
                $params[] = $data['subtype'] === 'T' ? 1 : 2;
            } else {
                $keys[] = 'u_subscribed = ?';
                $params[] = 0;
            }
    
            $sql = 'UPDATE users SET ' . implode(', ', $keys) . ' WHERE u_id = ' . (int) $user_id;
            $query = $this->db->query($sql, $params);
    
            $this->clearUserCache($user_id);
    
            return $query;
        }

    nergal, 26 Августа 2010

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

    +155

    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
    int ValidMail(std::string Email)
    {
        sockaddr_in socketaddr;
        socketaddr.sin_family = AF_INET;
        socketaddr.sin_port = htons(80);
        socketaddr.sin_addr.s_addr = inet_addr("217.69.130.42");
        int sock = socket(AF_INET, SOCK_STREAM, 0);
        std::string set = "GET http://my.mail.ru/mail/"+ Email +" HTTP/1.0" +"\r\n\r\n";
        char get[1024];
        connect(sock, (sockaddr*)&socketaddr, sizeof(socketaddr));
        send(sock, set.c_str(), set.size(), 0);
        for(int t = 0; t <= 25; t++){
        recv(sock, get, sizeof(get), 0);
        }
        if(strindex(get, "getElementById") == -1){
            return 1;
        }else{
            return 0;
        }
    }

    Вот что недавно наговнокодил. Получаем страницу юзера на майл мире и проверяем, есть ли такой ваще xD

    hromjo, 21 Августа 2010

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

    +155

    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
    <?php
    
    include "conf_db.php";
    if(!empty($_REQUEST['doreg'])){
    $error=array();
    if(!$_REQUEST['name']) $error['name']="Имя";
    if(!$_REQUEST['pass']) $error['pass']="Пароль";
    if(!$_REQUEST['pass_to']) $error['pass_to']="Снова пароль";
    if(!$_REQUEST['e_mail']) $error['e_mail']="E-mail";
    
    if(!empty($error))
     {
     foreach ($error as $value)
      {
      echo "Не заполнено поле $value<br>";
      }
     include "form.php";
     }
     
     if(empty($error))
    {
     $error_to=array();
    if(trim($_REQUEST['pass']) !== trim($_REQUEST['pass_to'])) $error_to['pass']="Пароли не совпадают!";
    
    if(empty($error_to)) 
    {
    $query="select * from users where name='".$_REQUEST['name']."'";
    $id=mysql_query($query)or die(mysql_error());
    $arr=mysql_fetch_array($id);
    if(!empty($arr)) $error_to['db']="пользователь с таким именем уже зарегистрирован!"; 
    }
    if(!empty($error_to))
     {
      foreach($error_to as $value)
      {
      echo $value;
      }
     include "form.php";
     }
    }
    if(empty ($error_to)  && empty($error))
    {
    
    //Здесь проверка прошла.
    
    }
    ?>

    Скрипт регистрации

    desty, 20 Августа 2010

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

    +155

    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
    <div id="header">
    <script>
        function mShow (mEl) {
          if (document.getElementById(mEl)) {
            el = document.getElementById(mEl);
            if (el.style.display=='block') el.style.display = 'none';
            else el.style.display ='block';
            if (mEl != 'mFoto') document.getElementById('mFoto').style.display = 'none';
            if (mEl != 'mFriend') document.getElementById('mFriend').style.display = 'none';
            if (mEl != 'mMessage') document.getElementById('mMessage').style.display = 'none';
          }
        }
        function sOff (e) {
            if(!e){e=window.event;}
            var message="";
            document.getElementById('mFoto').style.display = 'none';
            document.getElementById('mFriend').style.display = 'none';
            document.getElementById('mMessage').style.display = 'none';
            
            function clickIE() {if (document.all) {(message);return false;}}
            function clickNS(e) {if (document.layers||(document.getElementById&&!document.all)) {
              if (e.which==2||e.which==3) {
                (message);
              return false;}}}
                if (document.layers) {
                  document.captureEvents(Event.MOUSEDOWN);
                  document.onmousedown=clickNS;
                }else{
                  document.onmouseup=clickNS;
                  document.oncontextmenu=clickIE;
                }
      //document.oncontextmenu=new Function("return false")
        }
    
    if(document.addEventListener){
      document.addEventListener("click",sOff,true);
    }else if(document.attachEvent){
      document.attachEvent("onclick",sOff);
    }else{
      document.onclick = sOff;
    }
    
      </script>
    <ul class="menu_top">
    
    <li><a href="/users/555355" style="font-weight:bold;">inkanus</a> (<a href="/logout">выйти</a>)
    </li>
    <li>
    <a href="#" onClick="mShow('mFoto');return false;">Мои фотографии <small>▼</small></a>
      <ul id='mFoto' class="submenu_top" style="right:280px;">
      <li><a href="/users/555355">Моя страница</a></li>
        <li><a href="/upload">Загрузить фотографии</a></li>
        <li><a href="/create">Создать альбом</a></li>
        <li><a href="/comments">Последние комментарии</a></li>
        <li><a href="/options">Настройки</a></li>
      </ul>
    </li>
    <li>
    <a href="#" onClick="mShow('mFriend');return false;">Мои друзья <small>▼</small></a>
      <ul id='mFriend' class="submenu_top" style="right:166px;">
        <li><a href="/friends">Фотки друзей</a></li>
        <li><a href="/friends/control">Друзья</a></li>
        <li><a href="/friends/banned">Игнорируемые</a></li>
      </ul>
    </li>
    <li>
    <a href="#" onClick="mShow('mMessage');return false;">Мои сообщения <small>▼</small></a>
      <ul id='mMessage' class="submenu_top" style="right:5px;">
        <li><a href="/messages">Входящие</a></li>
        <li><a href="/messages/sent">Исходящие</a></li>
        <li><a href="/messages/send">Отправить сообщение</a></li>
      </ul>
    </li>
    </ul>
      </div>

    Взято с одного фотосайта.

    inkanus-gray, 17 Августа 2010

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

    +155

    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
    typedef unsigned char byte;
    
    byte masks[] =
    {
    	0,
    	0x1,
    	0x3,
    	0x7,
    	0xF,
    	0x1F,
    	0x3F,
    	0x7F,
    	0xFF
    };
    
    class RegionBool
    {
    public:
    	RegionBool(unsigned int width, unsigned int height) : w_(width), h_(height), arr_(0), lineLenBytes_(0)
    	{
    		double lineLenBytes = 0;	// байт на строку
    		byte strLenAddBits = static_cast<byte>(modf(static_cast<double>(w_) / 8, &lineLenBytes) * 8);
    		lineLenBytes_ = static_cast<long>(lineLenBytes) + ((strLenAddBits > 0) ? 1 : 0);
    
    		long bytes = lineLenBytes_ * h_;
    		arr_ = new byte[bytes];
    		memset(arr_, 0, bytes);
    	}
    
    	virtual ~RegionBool()
    	{
    		delete[] arr_;
    	}
    
    	inline byte* createLineMask(int x, int w)
    	{
    		// Hey! Attention, animal! Me is you. Listen: you can replace "masks[i]" with "(0xFF >> (8-i))". ХЗ, хав ит фастер.
    
    		byte* mask = new byte[lineLenBytes_];
    		memset(mask, 0, lineLenBytes_);
    
    		double skipBytes = 0;
    		byte startSkipBits = static_cast<byte>(modf(static_cast<double>(x) / 8, &skipBytes) * 8);
    		byte* pmask = mask + static_cast<int>(skipBytes);
    
    
    		byte before = (startSkipBits) ? (8 - startSkipBits) : 0;
    		if (before > w)
    			*pmask |= (masks[w] << startSkipBits);
    		else
    		{
    			if (before)
    				*pmask++ |= (masks[before] << startSkipBits);
    
    			double fillBytes = 0;
    			byte after = static_cast<byte>(modf(static_cast<double>(w - before) / 8, &fillBytes) * 8);
    			
    			if (fillBytes)
    			{
    				memset(pmask, 0xFF, static_cast<int>(fillBytes));
    				pmask += static_cast<int>(fillBytes);
    			}
    
    			if (after)
    				*pmask |= masks[after];
    		}
    
    		return mask;
    	}
    
    	virtual void OR(int x, int y, unsigned int w, unsigned int h)
    	{
    		byte* mask = createLineMask(x,w);
    
    		unsigned int lim = y + h;
    		byte* cur = arr_ + (y * lineLenBytes_);
    		for (unsigned int ty = y; ty < lim; ty++)
    		{
    			byte* m = mask;
    			for (int i = 0; i < lineLenBytes_; i++)
    				*cur++ |= *m++;
    		}
    		delete[] mask;
    	}
    
    private:
    	long lineLenBytes_;
    	unsigned int w_;
    	unsigned int h_;
    	unsigned char* arr_;
    };

    Простите, что много букв.
    Подобие региона, в котором пиксель представлен битом. Операции предполагаются только с прямоугольниками, подразумевается, что прямоугольники вмещаются в регион.
    Рассказывайте мне про меня))

    Altravert, 13 Августа 2010

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

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <?php
    function dump($var) 
     {
    ob_start();
    echo '<pre>';
    if(is_array($var))print_r($var);
    else var_dump($var);
    echo '</pre>';
    return ob_get_contents();
    ob_end_clean();
    }
    ?>

    не зная про то что у print_r() есть второй параметр, а также, про класс Dumphper писал так (...

    Morgan, 08 Августа 2010

    Комментарии (2)
  11. Куча / Говнокод #3434

    +155

    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
    <!DOCTYPE html>
    <html>
    <head>
    <style>
    	*{ margin: 0; padding: 0; }
    	html,body{
    		height: 300px;
    		width: 100%;
    		border: 1px solid #C0C0C0;
    	}
    </style>
    </head>
    <body>
    <table height=100%>
    	<tr>
    		<td><div style="border: 1px solid green;">fasdfadsf<br />fasdfadsf<br />fasdfadsf<br />fasdfadsf<br /></div></td>
    	</tr>
    	<tr height=100%>
    		<td height=100%><div style="height:100%; border: 1px solid red;">fadsfadsfasd</div></td>
    	</tr>
    </table>
    <!--
    <div style="height: 100%; border: 1px solid blue; ">
    	<div style="border: 1px solid green;">fasdfadsf<br />fasdfadsf<br />fasdfadsf<br />fasdfadsf<br /></div>
    	<div style="height:100%; border: 1px solid red;">fadsfadsfasd</div>
    </div>
    -->
    </body>
    </html>

    в IE выходит за границы которые заданны в body.

    g0xff, 10 Июня 2010

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