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

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

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public function save()
        {
            $query = "SELECT * FROM `users` WHERE `id` = '$this->userId'";
            $result = $this->db->select($query);
            if (!empty($result)) {
                $query = "UPDATE `users` SET `email` = '$this->email', `password` = '$this->pass', `name` = '$this->name', `age` = '$this->age', `date_birth` = '$this->dateBirth', `sex` = '$this->sex', `aboute` = '$this->about' WHERE `id` = '$this->userId'";
            } else {
                $query = "INSERT INTO `users` VALUES('$this->userId','$this->email','$this->pass','$this->name','$this->age','$this->dateBirth','$this->sex','$this->about')";
            }
            $this->db->query($query);
        }

    rtfm, 03 Ноября 2010

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

    +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
    function getCurrentTime( $isTimestamp = false )
    {
        if ( $isTimestamp ) {
            return time();
        } else {
            return date( 'Y-m-d H:i:s' );
        }
    }
    
    $timestamp = strtotime( getCurrentTime() );
    
    $startDate = date( 'Y-m-d H:i:s', $timestamp );

    Gummanoid, 03 Ноября 2010

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

    +164

    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
    for(i = 0;;i++) {
    		tmpS[i]=cin.get();
    		if(tmpS[i] == '\n') {
    			i--;
    			break;
    		}
    		if(!isdigit(tmpS[i]))
    			i--;
    	}
    ...
    for(k = 0; k < i; k++)
    	for(l =0; l < i; l++) {
    		tmp=t[l];
    		t[l]=t[l+1];
    		t[l+1]=tmp;
    	}

    циклический сдвиг строки. Найдено у себя же.

    ReallyBugMeNot, 02 Ноября 2010

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    for($i = 1; $i <= $num_page; $i++){
          if($Page != $i) echo"<a href=\"/news/p:$i/\">"; else echo"<b>["; echo"$i"; if($Page != $i) echo"</a>"; else echo"]</b>";
          if($i != $num_page) echo"&nbsp;| ";
        }

    hardstyler, 26 Октября 2010

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

    +70

    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
    Map<Integer, ArrayList<?>> // filterId : filterParams
    {
    	//
    	// Фильтр занятости квартир (не вписывается в API, поэтому здесь заведены отдельные методы)
    	//
    	
        // хранит: showReserved, DateFrom, DateTo
        private ArrayList<?> reservedFilterParams
    
        public void onDateFilterChanged(Date dateFrom, Date dateTo, boolean showReserved)
        {
    	this.put(QuickFilters.FILTER_RESERVED_ID, reservedFilterParams)
    		
    	reservedFilterParams = ArrayUtils.getOrCreateArrayListWithElements(
    			this, QuickFilters.FILTER_RESERVED_ID, new Boolean(showReserved), dateFrom, dateTo )
    	
    	if (dateFrom == null && dateTo == null)
            {
                reservedFilterParams.set(0,new Boolean(true))
                this.remove(QuickFilters.FILTER_RESERVED_ID)
            }
        }
    
        public boolean doShowReserved()
        {
            return reservedFilterParams ? reservedFilterParams.get(0).booleanValue() : true
        }
    
        public Date getDateFrom()
        {
            return reservedFilterParams?.get(1)
        }
    
        public Date getDateTo()
        {
            return reservedFilterParams?.get(2)
        }
    
    }

    Язык Groovy, стиль - моя переходная форма от Java. Это я сам написал. Вообще мне даже нравится. Есть фильтры для поиска. У каждого фильтра есть только ему ведомые параметры. Приведенный код - это мапка для хранения того, какие пользователь выбрал фильтры и что в них установил.

    Есть API который я делаю, состоящий из типовых фильтров. Этот API автоматически юзает мапку через get/put. Но бывает, придумывается какой-то нетиповой фильтр, и его параметры приходится хардкодить в этой мапке. Короче, мне понравилась идея с мапкой, ведь даже если параметры захардкодены, то они всё равно пихаются в мапку. И читаемость для таких случаев навысоте.

    Bugdog, 20 Октября 2010

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

    −85

    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
    package {
    	import flash.utils.setInterval;
    	import flash.utils.clearInterval;
    	import flash.display.Sprite;
    	import flash.display.StageScaleMode;
    	import flash.display.StageAlign;
    
    	import pages.loadPage;
    	import pages.rokerPage;
    
    	[SWF(width='600', height='690', backgroundColor='#151515', frameRate='30')]
    
    	public class pokerLegalize extends Sprite {
    		public var uid:String;
    		public var page1:loadPage = new loadPage();
    		public var page2:rokerPage = new rokerPage();
    		private var loadInterval:uint;
    		private var flashVars:Object;
    
    		public function pokerLegalize()
    		{
    			stage.scaleMode = StageScaleMode.NO_SCALE;
    			stage.align = StageAlign.TOP_LEFT;
    			addChild(page1);
    			loadInterval = setInterval(loadComplite, 100);
    		}
    
    		private function loadComplite():void
    		{
    			if(page1.getLoadStatus()) {
    				clearInterval(loadInterval);
    				flashVars = stage.loaderInfo.parameters as Object;
    							
    				removeChild(page1);
    				addChild(page2);
    				pageResezer(2);
    			}
    		}
    
    		private function pageResezer(page:uint):void
    		{
    			if(page == 2) {
    				page2.wall.wall.wallArray = page1.getVars('wallArray');
    				page2.friendsWall.friendsWall.friendsFull = page1.getVars('friendsArray');
    				
    				page2.friendsWall.friendsWall.createWall();
    				page2.friendsWall.resize();
    				
    				page2.wall.wall.lengthXML = page1.getterBrick.getLenght();
    				page2.wall.wall.setBrokenMode(true, false, 1);
    				page2.wall.setFlashVars(flashVars);
    				page2.wall.addAllEventListeners();		
    				page2.flashVars = flashVars;
    			}
    		}
    	}
    }

    По ТЗ, мне надо разобраться в этом коде... Внимание на функцию pageResezer... хотя интервал тоже не плох @_@

    KirAmp, 20 Октября 2010

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

    +124

    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
    namespace Test.Data
    {
        public class Connection
        {
            public static SqlConnection getConnection()
            {
                string server = "";
    
                if (!File.Exists(@"C:\ConnectionParameters.ini"))
                    LogFileAdministration.WriteMessage("The ConnectionParameters.ini file does not exist.");
    
                else
                {
                    StreamReader reader = new StreamReader(@"C:\ConnectionParameters.ini");
                    server = reader.ReadLine();
                    reader.Close();
                }
    
                return new SqlConnection(@"Data Source= " + server + "; Integrated Security=SSPI; Initial Catalog=Test");
            }
        }
    }

    Итальянский программист. Из Италии. Внезапно попросился на работу. Отослал резюме. Дали ему тестовое задание - намутить поиск по табличке, по ключевой фразе с пейджингом.
    Что из этого вышло - смотрим улыбаемся.

    ursus, 18 Октября 2010

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

    +165

    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
    function FormatCurrency($fSum, $strCurrency)
    {
    	return CurrencyFormat($fSum, $strCurrency);
    	/*
    	if (!isset($fSum) || strlen($fSum)<=0) return "";
    
    	$arCurFormat = CCurrencyLang::GetCurrencyFormat($strCurrency);
    
    	if (!isset($arCurFormat["DECIMALS"])) $arCurFormat["DECIMALS"] = 2;
    	$arCurFormat["DECIMALS"] = IntVal($arCurFormat["DECIMALS"]);
    	if (!isset($arCurFormat["DEC_POINT"])) $arCurFormat["DEC_POINT"] = ".";
    	if (!isset($arCurFormat["THOUSANDS_SEP"])) $arCurFormat["THOUSANDS_SEP"] = "\\"."xA0";
    	$tmpTHOUSANDS_SEP = $arCurFormat["THOUSANDS_SEP"];
    	eval("\$tmpTHOUSANDS_SEP = \"$tmpTHOUSANDS_SEP\";");
    	$arCurFormat["THOUSANDS_SEP"] = $tmpTHOUSANDS_SEP;
    	if (!isset($arCurFormat["FORMAT_STRING"])) $arCurFormat["FORMAT_STRING"] = "#";
    
    	$num = number_format($fSum, $arCurFormat["DECIMALS"], $arCurFormat["DEC_POINT"], $arCurFormat["THOUSANDS_SEP"]);
    
    	return str_replace("#", $num, $arCurFormat["FORMAT_STRING"]);
    	*/
    }

    1C-Bitrix,
    /bitrix/modules/catalog/include.php

    Under, 12 Октября 2010

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

    +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
    error_reporting(1);
    require("sells_pages.php");   // ЗДЕСЬ включен массив в виде 'бла-бла ссылка' => 'ее урл',
    
    $max_links = count($sells_pages); //Считает все элементы массива со ссылками
    $random_link_number = rand(0,$max_links); //Выбирает номер случайной строки массива
    
    $link = array_chunk($sells_pages, 1); //Разбивает массив по одному урлу
    
    for($i=0;$i<$max_links;$i++) { 
    	//echo $i." - ".$link[$i][0]."<br>"; //Присваивает переменной $i значение каждой ссылки
    	if ($random_link_number == $i) { $t_link = $link[$i][0]; }  //Сопоставляет случайное значение элементу массива  
    }
    
    //echo "<b>".$today_link."</b>";
    
    if (in_array($t_link, $sells_pages)) { //Проверяет наличие урла в исходном массиве и добавляет анкор
    	$title = array_keys($sells_pages, $t_link);
    	$today_link = "<a href='http://stopfire.ru/$t_link'>$title[0]</a>"; //Формирует конечную ссылку 
    }
    
    $current_address = "http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']; //Сопоставляет адреса чтобы не ссылать страницу на саму себя 
    if ($current_address != $today_link) {
    echo $today_link."<br>";
    }

    спрашивается зачем сравнивать со значением rand когда есть функция array_rand ?
    Гораздо проще так:
    $rand_keys = array_rand($sells_pages, 2);
    echo $sells_pages[$rand_keys[0]] . "\n";
    Понял через два часа))

    alex-engine, 12 Октября 2010

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

    +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
    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
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    function getFields () {
      global $requiredFields;
      global $alert;
      $formfields = "";
    
      foreach ($requiredFields as $name) {    
        if (isset($_SESSION[$name])) {
        // do nothing
        } elseif (isset($_POST[$name])) {
          if(verifyField($name)) {
            $_SESSION[$name] = $_POST[$name];
          } else {
            // display field again
            $formfields .= createField($name);
          }
        } else {
          // request field from user
          $formfields .= createField($name);
        }
      }
      return $formfields;
    }
    function getSessionValue($name) {
      if (isset($_SESSION[$name])) {
        return $_SESSION[$name];
      }  
      return NULL;
    }
    function getPostValue($name) {
      if (isset($_POST[$name])) {
        return $_POST[$name];
      }
      return NULL;
    }
    ...
     if (isset($labels[$name])) {
        return $labels[$name];
      } else {
        return $name;
      }
    }
    ....
    function createField($name) {
      if (isset($_POST[$name])) {
        $value = $_POST[$name];
      } else {
        $value = '';
      }
      $output = '';
      $label = getFieldLabel($name);
      switch ($name) {
        case 'firstname':
        case 'lastname':
        case 'name':
        case 'email':
        case 'confirm_email':
        case 'address':
        case 'expenses':
        case 'employer':
        case 'occupation':
        case 'MonthlyPayment':
        case 'nombre':
        case 'apellido':
        case 'correo':
          $output = "$label:<br/>
    			<input type=\"text\" name=\"$name\" value=\"$value\"/><br/>";
          break;
        case 'gender' :
          $output = $label . ':<br />
    	<select name="gender">
    	<option value="">-Select-</option>
    	<option value="m">Male</option>
    	<option value="f">Female</option>
    	</select><br />';
          break;
        case 'dob_month':
          $output = <<<EOT
    		$label:<br/>
    		<input type="text" name="$name" size="2" maxlength="2" value="$value" style="-wap-input-format: *N"/><br/>
    EOT;
          break;
        case 'dob_year':
          $output = <<<EOT
    		$label:<br/>
    		19<input type="text" name="$name" size="2" maxlength="2" value="$value" style="-wap-input-format: *N"/><br/>
    EOT;
          break;
        case 'dob_day':
          $output = <<<EOT
    		$label:<br/>
    		<input type="text" name="$name" size="2" maxlength="2" value="$value" style="-wap-input-format: *N"/><br/>
    EOT;
    ... 
      error_log($message);
          global $alert;
          $alert .= $message . '<br/>';
          break;
      }  return $output;
    }

    кусок из чудо "фреймворка" кем-то написанным. файл forms.php ."формирует" html поля для формы. такое там везде.

    belial_y, 08 Октября 2010

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