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

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

    +170

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //левое меню
    
    $stra=str_replace("/text.php?id=","",$_SERVER['REQUEST_URI']);//узнаём название страницы
    
    $sql2 = "SELECT * FROM `$pref"."left_menu` where `id`='$stra'";

    "Цитата" из самописного движка

    antongorodezkiy, 30 Октября 2011

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

    +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
    //записали значения, от которых отталкиваться будем. Типа первые значения. Почти повторяют столбцы в таблице
    $maxv1=303268.26141;
    $maxv2=0;
    $maxv3=0;
    $maxm1=294798.84277;
    $maxm2=0;
    $maxm3=0;
    $maxq=10067.89169;
    
    //а теперь финт ушами - находим сумму полей в таблице
    $thisres = mysql_db_query($base, "select * from $Tablename[3]", $link);
    while ($thisrow = mysql_fetch_array($thisres)) {
    	$maxv1+=0+(float)$thisrow['v1'];  //самая прекрасная часть
    	$maxv2+=0+(float)$thisrow['v2'];
    	$maxv3+=0+(float)$thisrow['v3'];
    	$maxm1+=0+(float)$thisrow['m_in'];
    	$maxm2+=0+(float)$thisrow['m_out'];
    	$maxm3+=0+(float)$thisrow['m3'];
    	$maxq+=0+(float)$thisrow['q'];
    }
    //и так еще 2 таблицы складываются

    Шедевр выдран из творения моего коллеги. Комментарии мои. Задача - найти разницу по каждому полю между двумя последними записями в таблице и результат записать в другую таблицу.

    zloiia, 30 Октября 2011

    Комментарии (7)
  4. Java / Говнокод #8302

    +78

    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
    public Date localTimeToUTC(final Date localTime) {
    	final DateFormat format = DateFormat.getDateTimeInstance();
    	format.setTimeZone(UTC);
    	
    	// This is a bit of a trick. Since Java assumes dates are in UTC,
    	// but localTime is not (blame the weird legacy database...),
    	// it's a semantically incorrect Date. Therefore we process it as
    	// if it's in UTC...
    	final String formatted = format.format(localTime);
    	
    	format.setTimeZone(localTimeZone);
    	
    	try {
    		return format.parse(formatted);
    	} catch (final ParseException e) {
    		throw new AssertionError(e); // cannot happen
    	}
    }

    И вновь издержки обратной совместимости. Китайские кулибины хранили DateTime в старой базе в локальном часовом поясе.

    lucidfox, 26 Октября 2011

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

    +159

    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
    echo "<center><br><br><form method=\"POST\" action=\"\">
      <select name=\"Data\">";
    $query="SELECT dtDate FROM Energo ORDER BY dtDate Desc"; 
    $res=mssql_query($query) or die("Ошибка запроса!"); 
    while($row = mssql_fetch_array($res))
    {
    echo "
      <option>".$row['dtDate']."</option>";
    }
    echo "</select>
      <input value=\"OK\" type=\"submit\">
    </form><center>";
    
    if(!empty($Data))
    	{
    	echo "<br><br><center><span style=\"font-weight: bold;\">Справка</span><br style=\"font-weight: bold;\">
            <span style=\"font-weight: bold;\">по ..... по состоянию на $Data г.<br><br>";
    		require_once ("tablebuh.lpd");
    		echo "<center><br><br>
    Начальник %Отдел% <img style=\"width: 50%;\"
     alt=\"\" src=\"podpis.gif\" align=\"middle\">
    К***в Н.А.<br><br>
    </center>"; 
    	}
    	
    else
    	{
    	echo "<form method=\"POST\" action=\"\">";
    	echo "<br><br><center><span style=\"font-weight: bold;\">Справка</span><br style=\"font-weight: bold;\">
            <span style=\"font-weight: bold;\">по .... по состоянию на ";
    	$query="SELECT dtDate FROM Energo WHERE id='1'"; 
    	$res=mssql_query($query) or die("Ошибка запроса!"); 
    	while($row = mssql_fetch_array($res)) 
    		{ 
    			$Data=$row['dtDate'];
    			echo $row['dtDate']."<br><br>";
    			require_once ("tablebuh.lpd");
    			echo "</center>"; 
    		}
    	echo "<center><br>
    Начальник %Отдел% <img style=\"width: 50%;\"
     alt=\"\" src=\"podpis.gif\" align=\"middle\">
    К***в Н.А.<br><br>
    ";
    
    //А вот и сам tablebuh.php
    
    <?php
    if(empty($Data))
    {
    require_once ("t2.php");
    }
    else 
    {
    require_once ("t1.php");
    }

    Хах, первый вопрос который задал себе, не пьян ли я был тогда=)
    Самое забавное, в течении 4 месяцев директор не имел никаких претензий по поводу одной и той же информации ежедневно=)

    LazyPiG, 21 Октября 2011

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

    −137

    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
    Для Каждого Стр0 из ДеревоНаФорме.Строки Цикл
    		Сум0 =0;
    	Для Каждого Стр1 из	Стр0.Строки Цикл
    		Сум1 =0;
    		Для Каждого Стр2 из Стр1.Строки Цикл;
    			 Попытка
    		Стр2.СуммаВсего = Стр2.Количество * Стр2.Нормочасы*ЦенаНормочаса *(1-Стр2.СкидкаНаРаботы/100)+ Стр2.Количество * Стр2.Цена *(1-Стр2.СкидкаНаЗапчасти/100) ;
    		Стр2.СтоимостьУстановки = Стр2.Количество * Стр2.Нормочасы*ЦенаНормочаса;		
    				Сум1=Сум1+ Стр2.СуммаВсего;
    		 	 исключение КонецПопытки;
    		 КонецЦикла;
    		 Стр1.СуммаВсего = Сум1;
    		 Сум0 = Сум0+Сум1;
    	 КонецЦикла;
    	 Стр0.СуммаВсего = Сум0; 
    КонецЦикла;

    Умопомрачительный подсчёт итога по колонке "СуммаВсего" в дереве.
    ДеревоНаФорме - дерево на форме. При интеркативном изменении числовых реквизитов - пересчитывается строка, но! на всякий случай здесь - в Попытке-Исключении пересчитываем СуммуВсего по строке ещё раз... Ну и конечно порадовала изящность конструкции....

    Pauchog, 19 Октября 2011

    Комментарии (7)
  7. Ruby / Говнокод #8239

    −99

    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
    def self.find_or_create params
      if params[:rule_id].present?
        rule = new_from_params params
        return nil if rule.nil?
        parent_rule = Rule.find_by_id params[:rule_id]
    
        if parent_rule and Rule.calc_md5(rule.to_hash) == parent_rule.crc
          parent_rule.rule_id = parent_rule.id
          parent_rule.grouped_by = rule.grouped_by
          parent_rule.sorted_by = rule.sorted_by
          parent_rule.save
          return parent_rule
        end
        rule_id = params.delete :rule_id
      end
    
      params = clear_and_sort params
      if (rule = Rule.find_by_crc(Rule.calc_md5(params))).present?
        rule.rule_id = rule_id
        rule.grouped_by = params[:grouped_by]
        rule.sorted_by = params[:sorted_by]
        rule.save
      else
        rule = new_from_params params.merge(:rule_id => rule_id)
        rule.save
      end
      rule
    end

    Метод модели, используется для поиска, создания и чего-то еще...

    emerald, 19 Октября 2011

    Комментарии (7)
  8. Java / Говнокод #8230

    +85

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    try {
    	   keySpec = new PBEKeySpec(s.toCharArray());
    	   tempKey = SecretKeyFactory.getInstance(ALGORITHM).generateSecret(keySpec);
         } catch (InvalidKeySpecException i) {}
    
    if(tempKey == null) {
          keySpec = new PBEKeySpec(s.toCharArray());
          tempKey = SecretKeyFactory.getInstance(ALGORITHM).generateSecret(keySpec);
    }

    Будь настойчив и не сдавайся!!!!

    kibberpunk, 18 Октября 2011

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

    +165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if($this->getAmount()){
    	$pos = strpos($this->getAmount(), '.');
    	if($pos === false )
    	{
    		$request->amount = $this->getAmount().'00';
    	}
    	else
    	{
    		$request->amount = str_replace('.','',$this->getAmount());
    	}
    }

    Magento extension: Cignex/Paymenttechchase
    Преобразование прайса в центы.
    Если цена заканчивается нулем, например 12.50 на выходе будет 125, а не 1250

    vesan, 17 Октября 2011

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

    +149

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if ($_POST['name']!='') {
    	$name=post_check($_POST['name'],10);
    }else {
    	unset($_POST);
    	$_SESSION['error']='Не введено имя';
    	header("location: index.php?mode=registration");
    	exit;
    }

    Проверка данных. Ухахатывался

    alexoy, 17 Октября 2011

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (!cpMenu->IsSelected())
    	{
    		std::vector<UINT> menus;
    		menus.push_back(_menuIndex.Value);	
    		if (!_SelectMenu(cpTarget, _instanceID.HasValue ? _instanceID.Value : -1, &menus[0], (UINT)menus.size(), SelectionType::Exclusive))
    			return CPNGObject();
    	}

    Не смог обойтись без вектора...

    alexoy, 16 Октября 2011

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