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

    +168

    1. 1
    if(substr($_SERVER['QUERY_STRING'],0,9)==='act=const')

    Вот так мы получаем GET данные из адресной строки

    Shevron, 19 Сентября 2010

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

    +162

    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
    if ( ! function_exists('days_in_month'))
    {
    	function days_in_month($month = 0, $year = '')
    	{
    		if ($month < 1 OR $month > 12)
    		{
    			return 0;
    		}
    	
    		if ( ! is_numeric($year) OR strlen($year) != 4)
    		{
    			$year = date('Y');
    		}
    	
    		if ($month == 2)
    		{
    			if ($year % 400 == 0 OR ($year % 4 == 0 AND $year % 100 != 0))
    			{
    				return 29;
    			}
    		}
    
    		$days_in_month	= array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    		return $days_in_month[$month - 1];
    	}
    }

    разработчики CodeIgniter не ищут лёгких путей
    date('t')

    DrFreez, 19 Сентября 2010

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

    +169

    1. 1
    setInterval("(d=document).body.removeChild(d.body.appendChild(x=d.createElement('INPUT'))&&(x.style.display='none')&&!x.focus()&&x);",50);

    Запрещаем выделение текста на странице. Это пиздец.

    eval, 18 Сентября 2010

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

    +143

    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
    #include "StdAfx.h"
    #include <stdio.h>
    #include <conio.h>
    #include <Windows.h>
    
    int main()
    {
    	int hs, hr, ms, mr, resulth, resultm;
    
    	printf("-----------------------------------\n------ Counting machine 3000 ------ \n \n");
    
    	printf("Write start time: ");
    	scanf("%d %d", &hs, &ms);
    
    	printf("Write time on the road: ");
    	scanf("%d %d", &hr, &mr);
    	
    	printf("Expect to perform a calculation...\n");
    	Sleep(4000);
    
    	resulth=hs+hr;
    	resultm=ms+mr;
    	
    	while (resulth>=24)
    	{
    		resulth=resulth-24;
    	}
    	
    	if (resultm>=60)
    	{
    		resultm=resultm-60;
    		resulth++;
    	}
    
    	printf("Done! You'll reach your destination at ", "%d", resulth, ":", "%d", resultm, ".");
    	printf("%d", resulth);
    	printf(":");
    	printf("%d", resultm, ".");
    	printf(".");
    
    	printf("\n\n-----------------------------------");
    	
    	int i;
    	scanf("%d", &i);
    
    	return 0;
    }

    «Время отправления и время прибытия поезда задаются в виде Ч М, где Ч - час от 0 до 23, М - минута от 0 до 59. Время в пути задаётся аналогично в формате Ч М, где Ч - количество часов от 0 до 999, а М - количество минут от 0 до 59.
    Требуется по данному времени отправления и времени в пути вычислить время прибытия поезда (возможно, в другие сутки).»

    Romanoff, 18 Сентября 2010

    Комментарии (14)
  5. Java / Говнокод #4279

    +144

    1. 1
    http://forums.sun.com/thread.jspa?threadID=5213426

    по ссылке длииииииииинный сплошь китайский код. Особенно красиво гипнотизироваться, крутя колесиком мышки вверх-вниз.

    каменный век в виртуальности, сколько ж можно?

    Lure Of Chaos, 18 Сентября 2010

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    if(!get_magic_quotes_gpc()) {
    	$_GET = addslashes($_GET);
    	$_POST = addslashes($_POST);
    }

    Шедевры отечественного экранирования. Из недр движка http://linuxnow.ru

    telnet, 18 Сентября 2010

    Комментарии (32)
  7. Куча / Говнокод #4277

    +143

    1. 1
    (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

    "Использование значения "****" для параметра "Пароль для базы данных" невозможно. Значение должно соответствовать регулярному выражению (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
    говноюзабилити при инсталляции Джумлы - разрабы забыли, что регэкспы: а. не все знают, б. сложно читать. Почему бы не вывести сообщение в понятном виде, вроде "пароль должен состоять из ..., и не содержать символов ..., и должен быть от .. до .. символов длиной"?

    Lure Of Chaos, 18 Сентября 2010

    Комментарии (12)
  8. 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)
  9. C++ / Говнокод #4275

    +169

    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
    if(typeid(*Line1)==typeid(TLine)) ; else
    if(typeid(*Line2)==typeid(TLine)) {cLine=Line1; Line1=Line2; Line2=cLine;} else
    if(typeid(*Line1)==typeid(TRay)) ; else
    if(typeid(*Line2)==typeid(TRay)) {cLine=Line1; Line1=Line2; Line2=cLine;} else
    if(typeid(*Line1)==typeid(TLineSegment)) ; else
    if(typeid(*Line2)==typeid(TLineSegment)) {cLine=Line1; Line1=Line2; Line2=cLine;}
    
    if(typeid(*Line1)==typeid(TLine)) {
    	if(typeid(*Line2)==typeid(TLine))  return 1; else
    	if(typeid(*Line2)==typeid(TRay)) {
    		if(
    			(( ((TRay*)Line2)->X1<=((TRay*)Line2)->X2 && ((TRay*)Line2)->X1<=Point.x )  ||
    			 ( ((TRay*)Line2)->X1>=((TRay*)Line2)->X2 && ((TRay*)Line2)->X1>=Point.x )) &&
    			(( ((TRay*)Line2)->Y1<=((TRay*)Line2)->Y2 && ((TRay*)Line2)->Y1<=Point.y )  ||
    			 ( ((TRay*)Line2)->Y1>=((TRay*)Line2)->Y2 && ((TRay*)Line2)->Y1>=Point.y ))
    		  )
    			return 1;
    		else
    			return -1;
    	} else
    	if(typeid(*Line2)==typeid(TLineSegment)) {
    		if(
    			(( ((TLineSegment*)Line2)->X1<=Point.x && Point.x<=((TLineSegment*)Line2)->X2 )||( ((TLineSegment*)Line2)->X2<=Point.x && Point.x<=((TLineSegment*)Line2)->X1 )) &&
    			(( ((TLineSegment*)Line2)->Y1<=Point.y && Point.y<=((TLineSegment*)Line2)->Y2 )||( ((TLineSegment*)Line2)->Y2<=Point.y && Point.y<=((TLineSegment*)Line2)->Y1 ))
    		  )
    			return 1;
    		  else
    			return -1;
    	}
    } else
    if(typeid(*Line1)==typeid(TRay)) {
    	if(typeid(*Line2)==typeid(TRay)) {
    		if(
    			((( ((TRay*)Line1)->X1<=((TRay*)Line1)->X2 && ((TRay*)Line1)->X1<=Point.x )  ||
    			  ( ((TRay*)Line1)->X1>=((TRay*)Line1)->X2 && ((TRay*)Line1)->X1>=Point.x )) &&
    			 (( ((TRay*)Line1)->Y1<=((TRay*)Line1)->Y2 && ((TRay*)Line1)->Y1<=Point.y )  ||
    			  ( ((TRay*)Line1)->Y1>=((TRay*)Line1)->Y2 && ((TRay*)Line1)->Y1>=Point.y )))
    			&&
    			((( ((TRay*)Line2)->X1<=((TRay*)Line2)->X2 && ((TRay*)Line2)->X1<=Point.x )  ||
    			  ( ((TRay*)Line2)->X1>=((TRay*)Line2)->X2 && ((TRay*)Line2)->X1>=Point.x )) &&
    			 (( ((TRay*)Line2)->Y1<=((TRay*)Line2)->Y2 && ((TRay*)Line2)->Y1<=Point.y )  ||
    			  ( ((TRay*)Line2)->Y1>=((TRay*)Line2)->Y2 && ((TRay*)Line2)->Y1>=Point.y )))
    		  )
    			return 1;
    		else
    			return -1;
    	} else
    	if(typeid(*Line2)==typeid(TLineSegment)) {
    		if(
    			((( ((TRay*)Line1)->X1<=((TRay*)Line1)->X2 && ((TRay*)Line1)->X1<=Point.x )  ||
    			  ( ((TRay*)Line1)->X1>=((TRay*)Line1)->X2 && ((TRay*)Line1)->X1>=Point.x )) &&
    			 (( ((TRay*)Line1)->Y1<=((TRay*)Line1)->Y2 && ((TRay*)Line1)->Y1<=Point.y )  ||
    			  ( ((TRay*)Line1)->Y1>=((TRay*)Line1)->Y2 && ((TRay*)Line1)->Y1>=Point.y )))
    			&&
    			((( ((TLineSegment*)Line2)->X1<=Point.x && Point.x<=((TLineSegment*)Line2)->X2 )||( ((TLineSegment*)Line2)->X2<=Point.x && Point.x<=((TLineSegment*)Line2)->X1 )) &&
    			((  ((TLineSegment*)Line2)->Y1<=Point.y && Point.y<=((TLineSegment*)Line2)->Y2 )||( ((TLineSegment*)Line2)->Y2<=Point.y && Point.y<=((TLineSegment*)Line2)->Y1 )))
    		  )
    			return 1;
    		else
    			return -1;
    	}
    	return 1;
    } else
    if(typeid(*Line1)==typeid(TLineSegment)) {
    	if(
    		((( ((TLineSegment*)Line1)->X1<=Point.x && Point.x<=((TLineSegment*)Line1)->X2 )||( ((TLineSegment*)Line1)->X2<=Point.x && Point.x<=((TLineSegment*)Line1)->X1 )) &&
    		((  ((TLineSegment*)Line1)->Y1<=Point.y && Point.y<=((TLineSegment*)Line1)->Y2 )||( ((TLineSegment*)Line1)->Y2<=Point.y && Point.y<=((TLineSegment*)Line1)->Y1 )))
    		&&
    		((( ((TLineSegment*)Line2)->X1<=Point.x && Point.x<=((TLineSegment*)Line2)->X2 )||( ((TLineSegment*)Line2)->X2<=Point.x && Point.x<=((TLineSegment*)Line2)->X1 )) &&
    		((  ((TLineSegment*)Line2)->Y1<=Point.y && Point.y<=((TLineSegment*)Line2)->Y2 )||( ((TLineSegment*)Line2)->Y2<=Point.y && Point.y<=((TLineSegment*)Line2)->Y1 )))
    	  )
    		return 1;
    	else
    		return -1;
    }

    Имеются классы:
    class TLine; // Линия
    class TRay: public TLine; // Луч
    class TLineSegment: public TRay; // Отрезок
    Функция записывает в Point точку пересечения прямых и возвращает 0 если прямые параллельны, -1 если пересекаются продолжения отрезков и 1 если пересекаются отрезки.
    Выше представлен кусок кода где проводится проверка, принадлежит точка пересечения отрезкам или их продолжениям.

    sanchousf, 17 Сентября 2010

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

    +178

    1. 1
    2. 2
    var td = $( this ).parent().parent().parent();
    while( td.next().length ) td.next().remove();

    Это СПАРТА!

    CheshirskyCode, 17 Сентября 2010

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