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

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

    +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
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    /*
    Содержимое news.xml
    <?xml version="1.0" encoding="utf-8"?>
     <news>
       <item>
         <title>Новые поступления</title>
         <text>
         This program is free software;
         </text>
         <date>13:30 - 12.08.2004</date>
       </item>
       <item>
         <title>ERERER поступления</title>
         <text>
           p pppppppppppppppp p p pp  p pppppppppppppppppp pppppppppppppppppppppp
         </text>
         <date>18:30 - 12.08.2004</date>
       </item>
     </news>
    */
    
    
     $file = fopen("news.xml","r");
     fseek($file, 47, SEEK_SET);
     $other = fread($file, 900000);
     fseek($file, 0, SEEK_SET);
     $prev = fread($file, 47);
     fclose($file);
     $file = fopen("news.xml","w");
    //...
    $text1 = "$text";
    $title = "$h1";
    $date = "$dates";
    echo $other;
    $all = $prev.'<item><title>'.$title.'</title><text>'.$text1.'</text><date>'.$date.'</date></item>'.$other;
    $buff = fputs ($file, $all);
    print $buff;

    Оригинальный способ дописывать новую новость в xml файл.
    Данный способ уже не кошерный:
    $doc = new DOMDocument();
    $doc->load($xml);
    $item = $doc->createElement('item');
    $news = $doc>getElementsByTagName('news')->item(0);
    $news->appendChild($item);
    $doc->save($xml);

    MoLe-X, 09 Сентября 2011

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

    +172

    1. 1
    2. 2
    3. 3
    4. 4
    days = (days < 10) ? days : days;
    hours = (hours < 10) ? hours : hours;
    minutes = (minutes < 10) ? minutes : minutes;
    seconds = (seconds < 10) ? seconds : seconds;

    Загадочная русская душа. Лежало в коде таймера обратного отсчета.

    ckald, 08 Сентября 2011

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

    +147

    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
    var credtype = new Array();
    credtype['A~'] = 'Страховка - финлизинг';
    credtype['A0'] = 'АвтоКредит за 30 мин';
    credtype['A1'] = 'Авто в кредит - основной';
    credtype['A2'] = 'Кредит на аванс';
    credtype['A3'] = 'Кредитные каникулы(авто)';
    credtype['A4'] = 'Залог авто (ПУФК)';
    credtype['A5'] = 'Стандартный автокредит <br/>(без страховок)';
    credtype['A6'] = 'Упрощённый автокредит <br/>(без страховок)';
    credtype['A7'] = 'Кредит без страховки (новые)';
    credtype['A8'] = 'Кредит без страховки (Б/У)';
    credtype['A9'] = 'Стандартный Б/У авто <br/>(с резервированием)';
    credtype['AA'] = 'Авто <br/>(прочие под залог автотранспорта)';
    credtype['AB'] = 'приобр. Авто Б/У';
    credtype['AC'] = 'покупка а/м Пежо (Илта) - схема 1';
    credtype['AD'] = 'Авто Б/У с площадок банка <br/>(некомис)';
    credtype['AE'] = 'Авто <br/>(Б/У с ежемесячной комиссией)';
    credtype['F2'] = 'Эконом-кредит отсрочка <br/>(Фокстрот)';
    credtype['F3'] = 'Потребительская корзина <br/>(Фокстрот)';
    credtype['F4'] = 'Фокстрот <br/>(меньше цена до 1500грн)';
    credtype['F5'] = 'Фокстрот <br/>(меньше цена от 1501 до 3000грн)';
    credtype['F6'] = 'Фокстрот <br/>(меньше цена от 3001 до 4500грн)';
    credtype['F7'] = 'Фокстрот <br/>(меньше цена от 4501 до 6000грн)';
    // …
    // Еще несколько десятков похожих строчек.
    // …
    credtype['FP'] = 'Ипотека с резервированием<br/>(упрощенный)';
    credtype['FQ'] = 'Кредитование охранников';
    credtype['FR'] = 'Акция 0% <br/>(ДОМОТЕХНИКА)';
    credtype['FS'] = '10*10*10 <br/>(ДОМОТЕХНИКА)';
    credtype['FT'] = 'ПРОСТОЙ <br/>(ДОМОТЕХНИКА)';
    credtype['FU'] = 'ДОМИАШНИЙ <br/>(ДОМОТЕХНИКА)';
    credtype['FV'] = 'МОБИЛЬНЫЙ со справкой <br/>(ДОМОТЕХНИКА)';
    credtype['FW'] = 'МОБИЛЬНЫЙ без справки <br/>(ДОМОТЕХНИКА)';
    credtype['FW'] = 'МОБИЛЬНЫЙ без справки <br/>(ДОМОТЕХНИКА)';
    credtype['FX'] = 'ГИБКИЙ /10-19.99/ <br/>(ДОМОТЕХНИКА)';
    credtype['FY'] = 'ГИБКИЙ /20-39.99/ <br/>(ДОМОТЕХНИКА)';
    credtype['FZ'] = 'ГИБКИЙ /40/ <br/>(ДОМОТЕХНИКА)';
    credtype['G0'] = 'ГИБКИЙ /40/ <br/>(ДОМОТЕХНИКА)';
    credtype['G1'] = 'жильё в кредит - основной';
    credtype['SZ'] = 'Событийное на заработки';
    credtype['TP'] = 'Только паспорт <br/>(Приват Кредит)';
    credtype[''] = '';
    
    function getCreditName(creditType) {
        var ct = credtype[creditType];
        if(ct != null)
            return ct;
        return '';
    }

    Код на сайте украинского ПриватБанка.

    prostosuper, 06 Сентября 2011

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

    +154

    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
    //Фунцкия транслита
       function ruslat ($string, $lower=false) {
          $string = ereg_replace(" ","_",$string);
          $string = ereg_replace("ж","zh",$string);
          $string = ereg_replace("ё","yo",$string);
          $string = ereg_replace("й","i",$string);
          $string = ereg_replace("ю","yu",$string);
          $string = ereg_replace("ь","",$string);
          $string = ereg_replace("ч","ch",$string);
          $string = ereg_replace("щ","sсh",$string);
          $string = ereg_replace("ц","c",$string);
          $string = ereg_replace("у","u",$string);
          $string = ereg_replace("к","k",$string);
          $string = ereg_replace("е","je",$string);
          $string = ereg_replace("н","n",$string);
          $string = ereg_replace("г","g",$string);
          $string = ereg_replace("ш","sh",$string);
          $string = ereg_replace("з","z",$string);
          $string = ereg_replace("х","h",$string);
          $string = ereg_replace("ъ","",$string);
          $string = ereg_replace("ф","f",$string);
          $string = ereg_replace("ы","y",$string);
          $string = ereg_replace("в","v",$string);
          $string = ereg_replace("а","a",$string);
          $string = ereg_replace("п","p",$string);
          $string = ereg_replace("р","r",$string);
          $string = ereg_replace("о","o",$string);
          $string = ereg_replace("л","l",$string);
          $string = ereg_replace("д","d",$string);
          $string = ereg_replace("э","e",$string);
          $string = ereg_replace("я","ja",$string);
          $string = ereg_replace("с","s",$string);
          $string = ereg_replace("м","m",$string);
          $string = ereg_replace("и","i",$string);
          $string = ereg_replace("т","t",$string);
          $string = ereg_replace("б","b",$string);
          $string = ereg_replace("Ё","yo",$string);
          $string = ereg_replace("Й","I",$string);
          $string = ereg_replace("Ю","YU",$string);
          $string = ereg_replace("Ч","CH",$string);
          $string = ereg_replace("Ь","",$string);
          $string = ereg_replace("Щ","SСH'",$string);
          $string = ereg_replace("Ц","C",$string);
          $string = ereg_replace("У","U",$string);
          $string = ereg_replace("К","K",$string);
          $string = ereg_replace("Е","JE",$string);
          $string = ereg_replace("Н","N",$string);
          $string = ereg_replace("Г","G",$string);
          $string = ereg_replace("Ш","SH",$string);
          $string = ereg_replace("З","Z",$string);
          $string = ereg_replace("Х","H",$string);
          $string = ereg_replace("Ъ","",$string);
          $string = ereg_replace("Ф","F",$string);
          $string = ereg_replace("Ы","Y",$string);
          $string = ereg_replace("В","V",$string);
          $string = ereg_replace("А","A",$string);
          $string = ereg_replace("П","P",$string);
          $string = ereg_replace("Р","R",$string);
          $string = ereg_replace("О","O",$string);
          $string = ereg_replace("Л","L",$string);
          $string = ereg_replace("Д","D",$string);
          $string = ereg_replace("Ж","Zh",$string);
          $string = ereg_replace("Э","E",$string);
          $string = ereg_replace("Я","Ja",$string);
          $string = ereg_replace("С","S",$string);
          $string = ereg_replace("М","M",$string);
          $string = ereg_replace("И","I",$string);
          $string = ereg_replace("Т","T",$string);
          $string = ereg_replace("Б","B",$string);
          $string = ereg_replace("'","",$string);
          $string = ereg_replace('"','',$string);
          $string = ereg_replace('`','',$string);
          if ($lower) {$string = mb_strtolower($string, "UTF-8");}
          return $string;
       }

    Нашел в реальном проекте по FTP

    vaska_proger, 01 Сентября 2011

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

    +122

    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
    public class ASyncFileHashAlgorithm
    	{
    		protected HashAlgorithm hashAlgorithm;
    		protected byte[] hash;
    		protected bool cancel = false;
    		protected int bufferSize = 4096;
    		public delegate void FileHashingProgressHandler (object sender, FileHashingProgressArgs e);
    		public event FileHashingProgressHandler FileHashingProgress;
    
    		public ASyncFileHashAlgorithm(HashAlgorithm hashAlgorithm)
    		{
    			this.hashAlgorithm = hashAlgorithm;
    		}
    
    		public byte[] ComputeHash(Stream stream)
    		{
    			cancel = false;
    			hash = null;
    			int _bufferSize = bufferSize; // this makes it impossible to change the buffer size while computing
    
    			byte[] readAheadBuffer, buffer;
    			int readAheadBytesRead, bytesRead;
    			long size, totalBytesRead = 0;
    
    			size = stream.Length;
             	readAheadBuffer = new byte[_bufferSize];
                readAheadBytesRead = stream.Read(readAheadBuffer, 0, readAheadBuffer.Length);
    
                totalBytesRead += readAheadBytesRead;    
    
                do
                {
                    bytesRead = readAheadBytesRead;
                    buffer = readAheadBuffer;    
    
                    readAheadBuffer = new byte[_bufferSize];
                    readAheadBytesRead = stream.Read(readAheadBuffer, 0, readAheadBuffer.Length);
    
                    totalBytesRead += readAheadBytesRead;    
    
                    if (readAheadBytesRead == 0)
                        hashAlgorithm.TransformFinalBlock(buffer, 0, bytesRead);
                    else
                        hashAlgorithm.TransformBlock(buffer, 0, bytesRead, buffer, 0);
    
    				FileHashingProgress(this, new FileHashingProgressArgs(totalBytesRead, size));
                } while (readAheadBytesRead != 0 && !cancel);
    
    			if(cancel)
    				return hash = null;
    
        		return hash = hashAlgorithm.Hash;
    		}
    
    		public int BufferSize
    		{
    			get
    			{ return bufferSize; }
    			set
    			{ bufferSize = value; }
    		}
    
    		public byte[] Hash
    		{
    			get
    			{ return hash; }
    		}
    
    		public void Cancel()
    		{
    			cancel = true;
    		}
    
    		public override string ToString ()
    		{
    			string hex = "";
    			foreach(byte b in Hash)
    				hex += b.ToString("x2");
    
    			return hex;
    		}
    	}

    Очень интересная реализация "асинхронного" хэширования.

    martin, 31 Августа 2011

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

    +163

    1. 1
    $style = (preg_match('#linux|windows|Yahoo|Rambler|Yandex|Google|bsd|bsd|unix|macos|macintosh#i', $_SERVER['HTTP_USER_AGENT'])) ? 'web' : 'wap';

    Вот так нужно определять, что же отдать клиенту - веб- или вап-версию.

    7ion, 31 Августа 2011

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

    +153

    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
    // ...
    if (m_parent->GetState() == Disconnected)
    {
    	CString login;
    	CString password;
    	m_login.GetWindowText(login);
    	m_password.GetWindowText(password);
    
    	if (login.IsEmpty()
    		|| password.IsEmpty())
    	{
    		::MessageBox(this->m_hWnd, _T("Please enter login and password"), _T("Input error"),MB_OK);
    		return;
    	}
    		
    	if (CheckString(login)
    		|| CheckString(password))
    	{
    		::MessageBox(this->m_hWnd, _T("You have entered unsupported symbol."), _T("Input error"), MB_OK);
    		m_login.SetWindowText(login);
    		m_password.SetWindowText(password);
    		
    		return;
    	}
    
    	SaveConfig();
    }
    
    // ...
    
    
    bool CheckString(CString& string)
    {
    	bool res = false;
    	CString checked = _T("<>,!()[]{}~`#$%^&*+=/\\\"|;:'");
    	for (int i = 0; i < checked.GetLength(); ++i)
    	{
    		if (string.Find(checked[i]) != -1)
    		{
    			res = true;
    			string = _T("");
    			break;
    		}
    	}
    
    	return res;
    }

    Проверка допустимых символов

    kandul, 31 Августа 2011

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function getCountComment($ent_id = null)
    {
        if(empty($ent_id))
        {
            return false;
        }
    ...
    }

    123qweasdzxc, 30 Августа 2011

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

    +158

    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
    $email = $_POST['email'];
    $pass = $_POST['pass'];
    $name = $_POST['name'];
    $famname = $_POST['famname'];
    $ip = $_SERVER['REMOTE_ADDR'];
    $date = date('Y-m-d [H:i:s]');
    
    if($_GET['reg'] == 'good' && $email!="" && $name!="" && $famname!="" && $pass!="" ) {
         if(!@mysql_connect('localhost', 'root', '')) {
              echo 'ѥ䩱򰠶鿠㱥񻑭塤ﲲ󯭠';
              exit();
         }
         mysql_select_db('efimov');
         $number = 0;
         $query = "select count(uid) as c from users";
         $res = mysql_query($query);
         while($row = mysql_fetch_array($res)) {
              $number = $row['c'] + 1;
         }	
         if(mysql_query("insert into users values ('$number', '$name','$famname','$email','$pass','$ip','$date')")) { 
              echo "$name, hello"; 
         }
    }
    echo '<script type="text/javascript">'.
    'alert("fuuu")'.
    '</script>';

    Регистрация пользователя ;)

    substr, 30 Августа 2011

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    int main(int argc, char* argv[])
    {
      std::cout<<"Good testing!\n";
      system("PAUSE"); 
      return 0;
    }

    http://www.gamedev.ru/code/forum/?id=151702

    Привет!
    Есть окно на DX9, как вывести текст?
    Делаю так:
    Создал файл txt.cpp.
    В итоге выводит только окно.
    Как вывести текст в DirectX 3D или можно по-другому?

    CPPGovno, 28 Августа 2011

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