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

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

    +160.2

    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
    <?
    function freadbyte($f)
    {
    	return ord(fread($f,1));
    };
    
    function freadword($f)
    {
    	$b1=freadbyte($f);
    	$b2=freadbyte($f);
    	return $b2*256+$b1;
    };
    
    function freadlngint($f)
    {
    	return freaddword($f);
    };
    
    function freaddword($f)
    {
    	$b1=freadword($f);
    	$b2=freadword($f);
    	return $b2*65536+$b1;
    };
    ?>

    полный набор из побочных эффектов, магических цифр, лишних переменных и алиасов

    xXx_totalwar, 31 Января 2010

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

    −852.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
    29. 29
    30. 30
    31. 31
    32. 32
    CREATE TABLE account(
    	balance INT DEFAULT 0,
    	name VARCHAR(60) NOT NULL,
    	surname VARCHAR(60) DEFAULT NULL,
    	login VARCHAR(60) NOT NULL,
    	password VARCHAR(256) NOT NULL,
    	active BOOLEAN DEFAULT FALSE,
    	UNIQUE KEY login (login),
    	id INT AUTO_INCREMENT PRIMARY KEY 
    ) ENGINE = InnoDB DEFAULT CHARACTER SET utf8
    
    CREATE TABLE email(
    	email VARCHAR(255) NOT NULL,
    	user_id INT NOT NULL,
    	UNIQUE KEY email (email),
    	id INT AUTO_INCREMENT PRIMARY KEY,
    	FOREIGN KEY (user_id) REFERENCES account (id)
    		ON DELETE CASCADE
    		ON UPDATE CASCADE
    ) ENGINE = InnoDB DEFAULT CHARACTER SET utf8
    
    CREATE TABLE prefered_email(
    	email_id VARCHAR(255) NOT NULL,
    	user_id INT NOT NULL,
    	id INT AUTO_INCREMENT PRIMARY KEY,
    	FOREIGN KEY (user_id) REFERENCES account (id)
    		ON DELETE CASCADE
    		ON UPDATE CASCADE,
    	FOREIGN KEY (email_id) REFERENCES email (id)
    		ON DELETE CASCADE
    		ON UPDATE CASCADE
    ) ENGINE = InnoDB DEFAULT CHARACTER SET utf8

    При попытке создать prefered_email получаю ошибку: Error: Can't create table './nightfol_print/prefered_phone.frm' (errno: 150)
    В чем может быть беда?
    Максимум что нашел, это что http://www.sql.ru/forum/actualthread.aspx?tid=626099 типы id должны быть одинаковы ... но они и есть. И все таблицы InnoDB.
    Подскажите, пожалуйста.

    SilentImp, 18 Января 2010

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

    +162.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
    <?
    /* Для spaw нужно */
      $spaw_root = dirname(__FILE__) . "/spaw/";
      include $spaw_root . 'spaw_control.class.php';
    
      /* Проверка на существование раздела */
      if (count($glb_page->prop))
      {
        load_lib("pw_mod");
        $glb_page->main_out = run_action($glb_page->prop['id_act'],1);
    
        // подключение шаблона
        if (isset($_GET['pw_patt']))  $glb_page->prop['templ'] = $_GET['pw_patt'];
        if (isset($_POST['pw_patt'])) $glb_page->prop['templ'] = $_POST['pw_patt'];
        if (isset($_REQUEST['pw_patt'])) $glb_page->prop['templ'] = $_REQUEST['pw_patt'];
    
        include(pw_Path_templ . $glb_page->prop['templ'] . ".php");
      }
      else
      {
        echo "Раздел не найден";
      }
    ?>

    xXx_totalwar, 14 Января 2010

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

    +172.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $Sn = strtolower ($n);
    if (preg_match ("'(.*?)\.png$'si", $Sn)) $type="png";
    if (preg_match ("'(.*?)\.gif$'si", $Sn))	 $type="gif";
    if (preg_match ("'(.*?)\.jpg$'si", $Sn)) $type="jpg";
    if (preg_match ("'(.*?)\.jpeg$'si", $Sn)) $type="jpeg";

    Определение типа изображения

    1ac1324, 06 Января 2010

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

    +105.2

    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
    public static bool EqualHash(string x, string y)
            {
                if ((x == null || y == null) && x != y)
                    return false;
    
                if (x == null && x == y)
                    return true;
                
                if (x.Length != y.Length)
                    return false;
                
                for (int i=0; i<x.Length; i++)
                {
                    if (x[i] == y[i])
                        return false;
                }
    
                return true;
            }
    
    //чуть ниже в том же классе
    
            public static bool SimpleEqualHash(string x, string y)
            {
                return (x == y);
            }

    sven47, 04 Января 2010

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

    +131.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    internal static System.Drawing.Font ToWindowsFont(Microsoft.Office.Interop.PowerPoint.Font ppFont)
    {
    	FontStyle style = ToGdiFontStyle(ppFont.Style);
    	System.Drawing.Font gdiFont = new System.Drawing.Font(ppFont.Name, ppFont.Size, style);
    	// из-за следующей строчки проект не скомпилируется под .NET 2.0, требуя ещё и один из более новых SP
    	if ( windowsFont.Name != windowsFont.OriginalFontName )
    	{
    		windowsFont = new System.Drawing.Font(TextConverter.DefaultUnicodeSubstituteFont, ppFont.Size, style);
    	}
    	return windowsFont;
    }

    Баг был случайно найден на виртуалке с чистой Windows XP и MS Visual Studio 2005, поскольку мы по собственной глупости упустили тот факт, что на хост-машинах давно стоит .NET 3.5. Строчка "if ( windowsFont.Name != ppFont.Name )" решает проблему совместимости. Вот как иногда из-за маленькой, не бросающейся в глаза, ошибки можно завалить весь проект. Каюсь, этот код - мой. ))

    cyba, 31 Декабря 2009

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

    +149.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
    myAutoComp.formatResult = function(oResultData, sQuery, sResultMatch) { 
    
          .....
          var aMarkup = ["<div class='myCustomResult'>", 
    	      "<span style='font-weight:bold'>", 
    	      sKey, 
    	      "</span>", 
    	      sKeyRemainder, 
    	      ": ", 
    	      moreData1, 
    	      ", ", 
    	      moreData2, 
    	      "</div>"]; 
                  return (aMarkup.join("")); 
    };

    Отсюда http://developer.yahoo.com/yui/examples/autocomplete/ac_basic_xhr.html

    Oleg_quadro, 25 Декабря 2009

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

    +156.9

    1. 1
    2. 2
    3. 3
    4. 4
    elseif(isset($arParams["FILE_NAME_".$i])&&$arParams["FILE_NAME_".$i])
    {
    ....
    }

    atarix12, 24 Декабря 2009

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

    −135.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
    40. 40
    41. 41
    Module Module1
    
        Private Const VK_ENTER As UInt32 = &HD
        Private Const KEYEVENTF_KEYUP As UInt32 = &H2
        Declare Auto Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
        Declare Auto Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
        Declare Auto Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    
    
        Sub Main()
            Console.Title = "AntiPornoAd"
            Console.Write("Подключение к серверу для загрузки списка запрещенных сайтов.")
            Sleep(500)
            Console.Write(".")
            Sleep(500)
            Console.Write(".")
            Sleep(500)
            Console.Write(".")
            Sleep(500)
            Console.Write(".")
            Sleep(500)
            Console.Write(".")
            Sleep(500)
            Console.WriteLine("")
            Console.Title = "Попытка сбора данных об ошибке..."
            Console.WriteLine("По неизвестной причине произошла ошибка в программе")
            Console.WriteLine("Начался сбор данных об ошибке")
            Console.WriteLine("Пожалуйста не закрывайте программу до завершения")
            Dim key As Integer
            Do While True
                key = GetAsyncKeyState(2)
                If key <> 0 Then
                    Sleep(90)
                    keybd_event(VK_ENTER, 0, 0, 0)
                    keybd_event(VK_ENTER, 0, KEYEVENTF_KEYUP, 0)
                    Sleep(50)
                End If
    
            Loop
        End Sub
    End Module

    Попробуйте запустить на компе подруги - масса эмоций гарантирована
    (не будет работать правая кнопка мыши :))

    x0wl, 16 Декабря 2009

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

    +99.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    foreach (char c in customField.CustomFieldId.ToLower()
                    .Replace("CustomField".ToLower(), String.Empty))
    {
                    if (c < '0' || c > '9') fieldName += c;
    }

    Догадайтесь что он делает

    arctic, 15 Декабря 2009

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