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

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

    +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
    unset($stats_array);
    		if(!empty($finish_array))
    		{
    			$finish_array1=array();
    			foreach($finish_array as $key=>$value)
    			{
    				//print_r($value);
    				foreach($value as $key1=>$value1)
    				{
    					$finish_array1[]=array("product"=>$key,"mirror"=>$key1,"views"=>$value1);
    				}
    				$i++;
    				
    			}
    			unset($finish_array);
    		function cmp_c($a, $b)
    		{
    			if((int)$b["views"]<$a["views"]) return -1;
    			else return 1;
    			//return strcmp($b["views"],$a["views"]);
    		}
    
    		usort($finish_array1, "cmp_c");
    		$RESULT_TABLE="
    		<table border='1'>
    			<tr>
        			<td>Референс</td>
        			<td>КЭШ</td>
        			<td>Просмотров</td>
      			</tr>";

    тот же новый программист.
    сочно, сладко

    warider, 31 Марта 2011

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

    +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
    enum EPlayerStat { ... };
    typedef std::pair<EPlayerStat, int> StatDelta;
    ...
    
    void GameClassT::showTooltipStats(const float2& pos, const std::vector<StatDelta>& statDeltas)
    {
    	//...
    
    	if (statDeltas.empty())
    		return;
    
    	// Выбираем тип баббла в зависимости от количества статов, которые в нём нужно отобразить.
    	// Баббл с последним статом "wish chance" выглядит немного не так, как остальные,
    	// но возможен (пока что) только для варианта с тремя статами.
    
    	Bubble* const bubblesNormal[] =
    	{
    		&m_bubbleTooltipStats1SE,
    		&m_bubbleTooltipStats2SE,
    		&m_bubbleTooltipStats3SE,
    		&m_bubbleTooltipStats4SE
    	};
    	Bubble* const bubblesWish[] =
    	{
    		nullptr,
    		nullptr,
    		&m_bubbleTooltipStats3SE_Wish,
    		nullptr
    	};
    
    	Bubble* const* const bubbles = (statDeltas.end() == std::find_if(statDeltas.begin(), statDeltas.end(),
    		[](const StatDelta& delta) -> bool { return delta.first == PS_WishChance; }))
    			? bubblesNormal : bubblesWish;
    	
    	Bubble& bubble = *bubbles[(statDeltas.size() <= ARRAY_SIZE(bubbles)) ? (statDeltas.size() - 1) : (ARRAY_SIZE(bubbles) - 1)];
    	if (&bubble == nullptr)
    	{
    		RZT_LOG_WARNING("Bubble with %d stats with wish chance is not supported!", statDeltas.size());
    		return;
    	}
    
    	// Настраиваем выбранный баббл.
    
    	//... (здесь вызываются всякие методы через ссылку bubble)
    }

    Внезапные изменения в спецификации такие внезапные.
    Мне всегда становится страшно, когда из-за них я начинаю рожать что-то подобное.

    Kirinyale, 31 Марта 2011

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

    +159

    1. 1
    echo file_get_contents("split('?')[1]");

    Смесь PHP & JavaScript. Честно, я не понимаю, какого результата хотел добиться автор.

    stuffort, 31 Марта 2011

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

    +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
    if (is_dir($read_dir)) {
    	if ($open_dir = @opendir($read_dir)) {
    		while (false !== ($dir_temp = readdir($open_dir))){
    			if ($dir_temp != "." && $dir_temp != ".." && is_dir($read_dir.'/'.$dir_temp) && $filtre == '') {
    				if(!(file_exists("../templates/".$dir_temp."/parameter/info.php"))) {
    					echo messStop(LG_DIR.' ' . $dir_temp . ' '.LG_MOD_ERROR_IS_FILE_);
    				} else {
    					require("../templates/".$dir_temp."/parameter/info.php");
    					echo "<tr><td>";
    					if(!(file_exists("../templates/".$dir_temp."/parameter/previews.jpg"))) {
    						echo "<a href=\"?am=mod[template]&template=[edit]&name=$dir_temp\" OnMouseOver=\"Tip('<img width=&quot;175&quot; src=&quot;../images/all/no_prewies.png&quot; >')\" />$temp_name</a>";
    					} else {
    						echo "<a href=\"?am=mod[template]&template=[edit]&name=$dir_temp\" OnMouseOver=\"Tip('<img width=&quot;175&quot; src=&quot;../templates/$dir_temp/parameter/previews.jpg&quot; >')\" />$temp_name</a>";
    					}
    					echo "</td><td>$temp_version</td><td>$temp_date</td><td>$temp_autor</td></tr>";
    				}
    			} elseif ($dir_temp != "." && $dir_temp != ".." && is_dir($read_dir.'/'.$dir_temp) && $dir_temp == $filtre) {
    				if(!(file_exists("../templates/".$dir_temp."/parameter/info.php"))) {
    					echo messStop(LG_DIR.' ' . $dir_temp . ' '.LG_MOD_ERROR_IS_FILE_);
    				} else {
    					require("../templates/".$dir_temp."/parameter/info.php");
    					echo "<tr><td>";
    					if(!(file_exists("../templates/".$dir_temp."/parameter/previews.jpg"))) {
    						echo "<a href=\"?am=mod[template]&template=[edit]&name=$dir_temp\" OnMouseOver=\"Tip('<img width=&quot;175&quot; src=&quot;../images/all/no_prewies.png&quot; >')\" />$temp_name</a>";
    					} else {
    						echo "<a href=\"?am=mod[template]&template=[edit]&name=$dir_temp\" OnMouseOver=\"Tip('<img width=&quot;175&quot; src=&quot;../templates/$dir_temp/parameter/previews.jpg&quot; >')\" />$temp_name</a>";
    					}
    					echo "</td><td>$temp_version</td><td>$temp_date</td><td>$temp_autor</td></tr>";
    				}
    			} elseif(!is_dir($read_dir.'/'.$filtre) && $filtre != '' && $filtre != $dir_temp) {
    				$returnMessWarn = messSearch(LG_ERR_FILTRE_NULL);
    			}
    		}
    	closedir($open_dir);
    	}
    }

    Данный код выводит списком шаблоны от системы.... Самое страшное, когда спустя некоторое время, со свежими мозгами потребовалось усовершенствовать всё это, в итоге проблема решилась просто, всё переписатьс нуля по человечески.

    nethak, 30 Марта 2011

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

    +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
    m_hSemaphore		= CreateSemaphore( NULL, 1, 1, NULL );
    ....
    
    void CTestGUIDlg::OnBnClickedButtonStartStream()
    {
    	WaitForSingleObject(m_hSemaphore, INFINITE);
    	if(m_ThreadHandle)
    	{
    		AfxMessageBox("Stop running stream!", MB_ICONEXCLAMATION);
    		return;
    	};
    
    	m_ThreadHandle	= NULL;
    	m_StreamType	= 1;
    	m_ThreadHandle =					(HANDLE)_beginthreadex(NULL,
    										0,
    										streamProcedure,
    										static_cast<LPVOID>( this ),
    										0,
    										NULL);	
    
    	if(!m_ThreadHandle) 
    	{
    		m_StreamType	= 0;
    	}
    	UpdateButtons();
    	ReleaseSemaphore(m_hSemaphore, 1, NULL);
    }

    классика жанра

    Aleskey, 30 Марта 2011

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

    +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
    <?php
    $z=0;
    $ti=0;
    $ti2=0;
    
    $res=array();
    $txt="";
    $res=array();
    if($argc<2)exit(0);
    $fn=$argv[1];
    $pt='/(^|\b|\s)((\w|[а-я]|\d)+(?:\.|\,)?)(\b|\.|,|-)/i';
    if(isset($fn)){
    $fc=file($fn);
    foreach($fc as $nl=>$str){
    preg_match_all($pt,$str,$res,PREG_PATTERN_ORDER);
    foreach($res[0] as $key=>$per){
     # $per=trim($per);
    $sz=iconv_strlen($per);
    $tz=iconv_strlen($per);
    echo "Per $per key $key sz $sz\n";
    
    while($sz>=2){ 
     $eb = substr($per,0,$sz-1);
    echo "eb $eb\n";
    $res=system("cat -b dict.txt | grep ' ".$eb." ' | head -n1 | gawk '{ print $1 }'");
    #echo "$res\n";
    if($res!=""){
    echo "res $res\n";
    $oc=substr($per,$sz-1,$tz); 
    $fd=fopen("$argv[1].txt","a");
    if($fd<0){echo "fopen";exit(0);};
      fseek($fd,SEEK_END,0);
    fwrite($fd,"$res$oc ");
    
    fclose($fd);
    $sz=1;
    sleep(3);
    };
      $sz--;
    };
    if($sz==1){
    
    $fd=fopen("$argv[1].txt","a");
    if($fd<0){echo "fopen";exit(0);};
      fseek($fd,SEEK_END,0);
      fwrite($fd,"$per ");
      fclose($fd);
    };
    
    };
    };
    $str="";
    $res="";
    }
    ?>

    Замена слова кодом из словаря, по номеру слова в словаре.

    AliceGoth, 25 Марта 2011

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    bool DoYouWannaRealyDoThisFunctionYesNo(T*(f)(T...), bool answer)
    {
    	return answer;
    }

    Microsoft style

    semens, 21 Марта 2011

    Комментарии (37)
  9. C++ / Говнокод #6047

    +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
    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
    bool Document::_Parse_Auto (char sym)
    	{
    		bool error = 0;
    
    		switch (mInfo.AutoState)
    		{
    		case 0:
    			{
    				if (is_stag (sym))
    					mInfo.AutoState = 1;
    				else
    					mInfo.AutoState = 14;
    				break;
    			}
    		case 1:
    			{
    				if (is_name (sym))
    					mInfo.AutoState = 24;
    				else if (is_delim (sym))
    					mInfo.AutoState = 2;
    				else if (is_prcom (sym))
    					mInfo.AutoState = 11;
    				else if (is_info (sym))
    					mInfo.AutoState = 25;
    				else if (is_ekey (sym))
    					mInfo.AutoState = 21;
    				else
    					error = true;
    				break;
    			}
    <100500 строк case'ов>
    		case 26:
    			{
    				if (is_etag (sym))
    					mInfo.AutoState = 0;
    				else
    					error = true;
    				break;
    			}
    		}
    
    		return error;
    	}
    
    	void Document::_Parse_React (char sym)
    	{
    		switch (mInfo.AutoState)
    		{
    		case 0:
    			{
    				switch (mInfo.NodeType)
    				{
    				case ParseInfo::preproc:
    					{
    						delete mInfo.CurrentNode;
    						mInfo.CurrentNode = mInfo.LastTextNode;
    						break;
    					}
    				case ParseInfo::info:
    					{
    						delete mInfo.CurrentNode;
    						mInfo.CurrentNode = mInfo.LastTextNode;
    						break;
    					}
    				case ParseInfo::close:
    					{
    						
    						if (mInfo.name == mInfo.CurrentNode->name)
    							mInfo.CurrentNode = mInfo.CurrentNode->parent;
    						else
    						{ mInfo.Error = 51; return; }
    
    						mInfo.name.clear ();
    						break;
    					}
    				}
    				break;
    			}
    <ещё 100500 строк case'ов>
    		case 25:
    			{
    				mInfo.NodeType = ParseInfo::info;
    				mInfo.LastTextNode = mInfo.CurrentNode;
    				mInfo.CurrentNode = new Node;
    				break;
    			}
    		}
    
    		switch (mInfo.LastAutoState)
    		{
    <и ещё 100500 строк case'ов>

    Это я в 10 классе писал XML парсер, работающий на конечном автомате, в котором было 27 состояний.

    YuraTim, 20 Марта 2011

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

    +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
    <? 
    // Страница авторизации 
      
    # Функция для генерации случайной строки 
    function generateCode($length=6) { 
        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789"; 
        $code = ""; 
        $clen = strlen($chars) - 1;   
        while (strlen($code) < $length) { 
                $code .= $chars[mt_rand(0,$clen)];   
        } 
        return $code; 
    } 
    
    # Соединямся с БД 
    mysql_connect("localhost", "loper", "l1i2z3a4"); 
    mysql_select_db("lingerie"); 
     
    if(isset($_POST['submit'])) 
    { 
        # Вытаскиваем из БД запись, у которой логин равняеться введенному 
        $query = mysql_query("SELECT user_id, user_password FROM users WHERE user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1"); 
        $data = mysql_fetch_assoc($query); 
         
        # Соавниваем пароли 
        if($data['user_password'] === md5(md5($_POST['password']))) 
        { 
            # Генерируем случайное число и шифруем его 
            $hash = md5(generateCode(10)); 
                 
            if(!@$_POST['not_attach_ip']) 
            { 
                # Если пользователя выбрал привязку к IP 
                # Переводим IP в строку 
                $insip = ", user_ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."')"; 
            } 
             
            # Записываем в БД новый хеш авторизации и IP 
            mysql_query("UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'"); 
             
            # Ставим куки 
            setcookie("id", $data['user_id'], time()+60*60*24*30); 
            setcookie("hash", $hash, time()+60*60*24*30); 
             
            # Переадресовываем браузер на страницу проверки нашего скрипта 
            header("Location: check.php"); exit(); 
        } 
        else 
        { 
            print "Вы ввели неправильный логин/пароль"; 
        } 
    }

    qbasic, 19 Марта 2011

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

    +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
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    <?php
    /* Подключаемые файлы */
    require_once('data/config.test.php');
     
    /**
    * Сохранение настроек модуля
    */
    if ($action == "dosave") {
        $find[]     = "'\r'";
        $replace[]  = "";
        $find[]     = "'\n'";
        $replace[]  = "";
     
    if ($member_db[1] != 1) {
        msg ("error", $lang['opt_denied'], $lang['opt_denied']);
    }
    $handler = @fopen('data/config.test.php', "wb");
    fwrite ($handler, "<?php \n\n//Test configurations
                             \n\n\$config_test = array(
                             \n\n'version' => \"v.1.0\",\n\n");
     
    foreach ($save_con as $name => $value) {    
        $value = trim(stripslashes ($value));
        $value = htmlspecialchars  ($value, ENT_QUOTES);
        $value = preg_replace($find, $replace, $value);
        fwrite($handler, "'{$name}' => \"{$value}\",\n\n");
    }
        
    fwrite($handler, ");\n\n?>");
    fclose($handler);
     
    msg ("info", "Строка изменена",
         "{$lang['opt_sysok_1']}<br /><br />
          <a href=\"{$PHP_SELF}?mod=test_adm\">{$lang['db_prev']}</a>");
    }
    echo"Шапка";
    echo<<<HTML
    <form action="" method="POST">
    <table width="100%">
      <tr>
        <td class="option" style="padding:4px;">
          <b> Текст выводимой строки: </b><br />
          <span class="small"> например: Hello world </span>
        <td align="middle" width="400">
          <input class="edit" style="text-align:center" size="40" value="{$config_test['text']}" name="save_con[text]"></td>
      </tr>
      
      <tr>
        <td class="option" style="padding:4px;">
           <b> Комментарий к тексту: </b><br />
           <span class="small"> например: Это ваш первый пример модуля с админпанелью </span>
        <td align="middle" width="400">
           <input class="edit" style="text-align:center" size="40" value="{$config_test['detail']}" name="save_con[detail]"></td>
      </tr>
    
      <tr>
        <td class="option" style="padding-bottom:10px; padding-top:10px; padding-left:10px;" colspan="2">
          <input class="buttons" type="hidden" name="action" value="dosave" />
          <input class="buttons" type="submit" name="do" value=" Сохранить " /></td>
      </tr>
      
    </table>
    </form>
    HTML;
    echo"Подвал";
    ?>

    qbasic, 19 Марта 2011

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