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

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

    +17

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    unsigned long f( unsigned long a ) {
     while( (1 << 24) < a )
      a -= (1 << 24);
     return a;
    }

    Найден в дебрях старого проекта. Цель непонятна. Предположение -- обнулить старших 8-мь бит в 32-х битовом числе.

    eao197, 13 Августа 2009

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

    +18.3

    1. 1
    2. 2
    3. 3
    4. 4
    while(0<1)
    {
      ...
    }

    В универе встречал такой вот бесконечный цикл

    shurikroger, 12 Августа 2009

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

    +193

    1. 1
    2. 2
    header('Content-Type: text/html; charset=utf-8\n\n');
    session_commit();session_start();session_commit();session_start();  // магия, блять

    В PHP иногда возникает проблема с обновлением сессии (ну не успевает записать и всё тут), а сразу после обновления идёт вызов аяксом нового файла с header(...) и запросом этой же переменной сессии. Вот так вот решил кто-то (и кстати работает на ура):

    guest, 05 Марта 2009

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

    +12.2

    1. 1
    if (@mysql_query("CREATE TABLE `cms_attributes_".$a."` (`element_id` int(5))")) {}

    Реальный код..
    Видимо, человек любит индусов и начал им подражать)

    guest, 09 Января 2009

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

    +23

    1. 1
    2. 2
    Вообще-то HTML и CSS, но вот на это ругается валидатор:
    <b class="r10"></b><b class="r7"></b><b class="r5"></b><b class="r4"></b><b class="r3"></b><b class="r2"></b><b class="r2"></b><b class="r1"></b><b class="r1"></b><b class="r1"></b>

    Дизайн - базарунет, но повтыкайте там хотя б пробелы &nbsp;

    guest, 26 Декабря 2008

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

    +104.9

    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
    echo “<select id=\”seltel[".$i."]\”>”;
    switch ($data2["PHONE"][$i]["type"]) {
    case “Факс”:
    echo “<option selected>Факс”;
    echo “<option>Офисный телефон”;
    echo “<option>Колцентр”;
    echo “<option>Телефон”;
    echo “<option>Мобильный телефон”;
    break;
    case “Офисный телефон”:
    echo “<option>Факс”;
    echo “<option selected>Офисный телефон”;
    echo “<option>Колцентр”;
    echo “<option>Телефон”;
    echo “<option>Мобильный телефон”;
    break;
    case “Колцентр”:
    echo “<option>Факс”;
    echo “<option>Офисный телефон”;
    echo “<option selected>Колцентр”;
    echo “<option>Телефон”;
    echo “<option>Мобильный телефон”;
    break;
    case “Телефон”:
    echo “<option>Факс”;
    echo “<option>Офисный телефон”;
    echo “<option>Колцентр”;
    echo “<option selected>Телефон”;
    echo “<option>Мобильный телефон”;
    break;
    case “Мобильный телефон”:
    echo “<option>Факс”;
    echo “<option>Офисный телефон”;
    echo “<option>Колцентр”;
    echo “<option>Телефон”;
    echo “<option selected>Мобильный телефон”;
    break;
    };
    echo “</select><br/>”;

    вот как надо создавать выпадающие списки!

    guest, 12 Декабря 2008

    Комментарии (17)
  8. Perl / Говнокод #100

    −1006.6

    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
    @lib_001=('A','G','C','T','A');
    @lib_002=('C','T','A','A','G');		 
    @lib_003=('T','G','C','A','T');
    
    $string=<FILE>;
    @sequence=split("",$string);
    @code=@sequence[-7..-3];
    		
    if((join('',@lib_001) eq join('',@code)) or
        (join('',@lib_001[0..3]) eq join('',@code[0..3])) or
        (join('',@lib_001[1..4]) eq join('',@code[1..4])) or
        (join('',@lib_001[0,1,2,4]) eq join('',@code[0,1,2,4])) or
        (join('',@lib_001[0,2,3,4]) eq join('',@code[0,2,3,4])) or
        (join('',@lib_001[0,1,3,4]) eq join('',@code[0,1,3,4]))) 
    	{$tag=join('',@code);
    	 $closest_tag=join('',@lib_001);}
    			
    elsif((join('',@lib_002) eq join('',@code)) or
         (join('',@lib_002[0..3]) eq join('',@code[0..3])) or
         (join('',@lib_002[1..4]) eq join('',@code[1..4])) or
         (join('',@lib_002[0,1,2,4]) eq join('',@code[0,1,2,4])) or
         (join('',@lib_002[0,2,3,4]) eq join('',@code[0,2,3,4])) or
         (join('',@lib_002[0,1,3,4]) eq join('',@code[0,1,3,4]))) 
    	{$tag=join('',@code);
    	 $closest_tag=join('',@lib_002);}
    		
    elsif((join('',@lib_003) eq join('',@code)) or
         (join('',@lib_003[0..3]) eq join('',@code[0..3])) or
         (join('',@lib_003[1..4]) eq join('',@code[1..4])) or
         (join('',@lib_003[0,1,2,4]) eq join('',@code[0,1,2,4])) or
         (join('',@lib_003[0,2,3,4]) eq join('',@code[0,2,3,4])) or
         (join('',@lib_003[0,1,3,4]) eq join('',@code[0,1,3,4]))) 
    	{$tag=join('',@code);
    	 $closest_tag=join('',@lib_003);}
    
    else
    	{$tag=join('',@code);
    	  $closest_tag='NONE';}

    guest, 10 Декабря 2008

    Комментарии (17)
  9. SQL / Говнокод #24

    −401.4

    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
    SELECT *
    FROM (SELECT n.root, n.nodeid, n.name, UNIX_TIMESTAMP(m.createtime) AS
     updatetime, (SELECT COUNT(*) FROM fs_node WHERE sid = n.sid AND root = n.root
      AND cleft > n.cleft AND cright < n.cright AND clevel = n.clevel + 1 AND
       nodetype = 1) AS objcount FROM fs_node AS n, fs_node AS m WHERE n.sid = $ sid
        AND n.root IN (0, 1, 2, 3) AND n.nodetype = 0 AND m.nodeid =(SELECT MAX(
        nodeid) FROM fs_node WHERE sid = n.sid AND root = n.root AND cleft > n.cleft
         AND cright < n.cright AND clevel = n.clevel + 1 AND nodetype = 1) UNION ALL
         SELECT n.root, NULL, NULL, UNIX_TIMESTAMP(m.createtime) AS updatetime, (
         SELECT COUNT(*) FROM fs_node WHERE sid = $ sid AND root = n.root AND clevel
          = 1 AND nodetype = 1) AS objcount FROM (SELECT 0 AS root UNIONSELECT 1
           UNIONSELECT 2 UNIONSELECT 3) AS n, fs_node AS m WHERE m.nodeid =(SELECT
            MAX(nodeid) FROM fs_node WHERE sid = $ sid AND root = n.root AND clevel
             = 1 AND nodetype = 1)) AS tmp
    ORDER BY updatetime DESC

    guest, 27 Ноября 2008

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

    +35.6

    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
        function getError() {
            var error = false;
            if (isNaN($('client_sum').value) || $('client_sum').value <= 0) {
                $('error_op').innerHTML = "Только число большее  нуля";
                error = true;
            } else {
                $('error_op').innerHTML = "";
            }
            if ($('comment').value == "") {
                $('error_op2').innerHTML = "Введите примечание";
                error = true;
            } else {
                $('error_op2').innerHTML = "";
            }
            if (error == true) return false;
        }

    guest, 25 Ноября 2008

    Комментарии (17)
  11. 1C / Говнокод #28944

    +1

    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
    Функция ЭтоVIN(Знач Значение, Знач ПробелыЗапрещены = Истина) Экспорт 
    	
    	Если ТипЗнч(Значение) <> Тип("Строка") Тогда
    		Возврат Ложь;
    	КонецЕсли;   
    	
    	Если Не ПробелыЗапрещены Тогда
    		Значение = СтрЗаменить(Значение, " ", "");
    	КонецЕсли;
    	
    	Возврат ЗначениеЗаполнено(Значение)
    	И (СтрДлина(Значение) = 17)
    	И 	
    	// Если содержит только цифры, то в результате замен должна быть получена пустая строка.
    	// Проверять при помощи ПустаяСтрока нельзя, так как в исходной строке могут быть пробельные символы.
    	СтрДлина(  
    	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(	СтрЗаменить(
    	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
    	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(	СтрЗаменить(
    	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
    	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( 
    	СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
    	СтрЗаменить( СтрЗаменить( СтрЗаменить( 
    	Значение, "0", ""), "1", ""), "2", ""), "3", ""), "4", ""), "5", ""), "6", ""), "7", ""), "8", ""), "9", "")
    	, "A", ""), "B", ""), "C", ""), "D", ""), "E", ""), "F", ""), "G", ""), "H", ""), "J", ""), "K", ""), "L", ""), "M", "")
    	, "N", ""), "P", ""), "R", ""), "S", ""), "T", ""), "U", ""), "V", ""), "W", ""), "X", ""), "Y", ""), "Z", "")) = 0; 
    	
    КонецФункции

    Функция определяет является ли строка VIN, метода выбрана забавная - в строке удаляются все допустимые символы, то что осталось, по мнению автора - мусор, т.е. vin невалидный. Видимо просто проверить каждый символ на вхождение в допустимый алфавит это слишком просто ;).

    VladC, 20 Мая 2024

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