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

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

    +160

    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
    function antispam()
    {
    var num1=Math.floor(Math.random()*11)+1;
    var num2=Math.floor(Math.random()*11)+1;
    var sum = num1+num2;
    var userP = prompt("To check that you are not spammer, solve this simple equation - "+num1+"+"+num2+"=?","");
    if (userP != null)
    {
    if (userP != sum) 
    {
    document.write("<!--");
    alert("Wrong answer!");
    } 
    else 
    {
    document.write('<form id="logform" action="proceed.php" onsubmit="javascript:return validate("logform","email");" method="post"><p>Your name: <input type="text" name="name" /></p><p>Your password: <input type="password" name="password" /></p><p>Your e-mail: <input type="text" name="email" id="email" /></p><p><input type="submit" value="Register!" /></p></form>');
    }
    }
    }

    Вот в таком режиме работает уже месяца два. Если не ГК, прошу, посоветуйте как можно это лучше сделать (или прикрутить капчу и не парится? :)). На JS я практически не пишу, я пишу в основном под .NET.

    RaZeR, 15 Марта 2011

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

    +160

    1. 1
    2. 2
    float alpha = float(m_startAlpha) + 255.0f * (getElapsed() / (m_duration * (1.0f - float(m_startAlpha) / 255.0f)));
    m_target->setAlpha(static_cast<uint8_t>(alpha));

    Выдержка из обновления объекта-действия, производящего линейный фейд-аут объекта...

    Общение с чужим говнокодом не проходит бесследно... что же я курил, перед тем как ЭТО соорудить?

    Kirinyale, 14 Марта 2011

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

    +160

    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 function get_settings($id,$name,$total,$limit)
    {    
        $config = array();
        $config['total_rows'] = $total;
        $config['per_page'] = $limit;    
        $config['first_link'] = '&laquo;Первая';
        $config['last_link'] = 'Последняя&raquo;';
        $config['next_link'] = '&raquo;';
        $config['prev_link'] = '&laquo;';
    
        switch($id)
        {
            // Если навигация для категорий
            case 'category':            
                
                $config['base_url'] = base_url().'/index/category/'.$name;      
                $config['uri_segment'] = 4;
                
                //количество "цифровых" ссылок по бокам от текущей
                $config['num_links'] = 5;             
                
                return $config;            
                break; 
                
        }
    }

    qbasic, 13 Марта 2011

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

    +160

    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
    <?php
    class security extends engine{
        var $temp=array();
    
        function getUserId(){
            $hash=explode('::',$_COOKIE['site_hash']);
            $id=$hash[0];
            return $id;
        }
    
        function getUserSecurityAccess($id){
            if(is_numeric($id)){
                $id=rawurlencode($id);
                $conn_id=mysql_connect('host','user','passwd');
                mysql_select_db('database');
                $q=mysql_query("SELECT groupid FROM `users`
                                WHERE id='".$id."'",$conn_id);
                if($q){
                    if(mysql_numrows($q)!=0){
                        $result=@mysql_fetch_assoc($q);
                        return $result['group_id'];
                    }else{
                        return -1;
                    }
                }else{
                    return -1;
                }
                mysql_close($conn_id);
            }else{
                return -1;
            }
        }
    
        function checkUserPermission($module,$act){
            #return true;
            $this->temp=array();
            $this->temp['_result']=0;
            $this->temp['_uid']=explode('::',$_COOKIE['site_hash']);
            $this->temp['_uid']=$this->temp['_uid'][0];
            $this->temp['_gid']=$this->getUserSecurityAccess($this->temp['_uid']);
            $this->temp['_conn_id']=mysql_connect('host','user','passwd');
            mysql_select_db('database');
            $this->temp['_q1']=mysql_query('SELECT perms'
                            .'FROM `secure_groups`' 
                            .'WHERE id='.$this->temp['_gid']);    
            $this->temp['_access_stamp']=mysql_fetch_assoc($this->temp['_q1']);
            $this->temp['_access_stamp']=$this->temp['_access_stamp']['perms'];
            $this->temp['_access_stamp']=explode(';',$this->temp['_access_stamp']);
            $this->temp['_access_stamp']=array_slice($this->temp['_access_stamp'],0,-1);
            foreach($this->temp['_access_stamp'] as $this->temp['v']){
                $this->temp['_mod_access']=explode(':',$this->temp['v']);
                $this->temp['_mod_indefier']=$this->temp['_mod_access'][0];
                if($this->temp['_mod_indefier']==$module){
                    $this->temp['_perms']=explode(',',$this->temp['_mod_access'][1]);
                    switch($act){
                        case 'r':
                            $this->temp['_result']=($this->temp['_perms'][0]==1)? 1:0;
                            break;
                        case 'w':
                            $this->temp['_result']=($this->temp['_perms'][1]==1)? 1:0;
                            break;
                    }
                    break;
                }
            }
            mysql_close($conn_id);
            return $this->temp['_result'];
        }
    }
    ?>

    Понравилось окончание статьи
    "Надеюсь, что мы скоро встретимся...
    Кто хочет почитать остальные мои статьи - прошу на http://e-code.tnt43.com.
    С уважением Карпенко Кирилл, глава IT-отдела ИНПП. "

    MoLe-X, 12 Марта 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    <input type="text" name="quantity- <?php echo $row['id']; ?>" size="2" style="text-align:center" value="<?php echo $_SESSION['cart'][$row['id']]['quantity']; ?>" id='inp_<? echo $er;?>' onBlur='calculate(this.value, "<?php echo $row['cena'];?>", "bdo_<? echo $er;?>")'/>
    
    <? 
    if ($_SESSION['cart'][$row['id']]['quantity'] != $_POST['quantity-'.$row['id']]) $_SESSION['cart'][$row['id']]['quantity'] = $_POST['quantity-'.$row['id']];

    qbasic, 06 Марта 2011

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

    +160

    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
    <table class="form_order_create form_order_create_check" >
      
        <tr> <? /* пробел */?>
          <td style="width:30px">&nbsp;</td>
          <td style="vertical-align:middle;width:30%;" colspan=2>
            <div class="name" style="padding-left:10px;">
              &nbsp;
            </div>
          </td>
        </tr>
      
        <? /* Номер заказа */?>
        <tr>
          <td style="width:30px">&nbsp;</td>
          <td style="vertical-align:middle;width:30%;">
            <div class="name" style="padding-left:10px;">
              <u>Номер заказа:</u>
            </div>
          </td>
          <td style="vertical-align:middle;">
            <div class="name" style="padding-left:10px;">
              №<?=$arResult["ORDER_ID"]?>
            </div>
          </td>
        </tr>
        
        <tr> <? /* пробел */?>
          <td style="width:30px">&nbsp;</td>
          <td style="vertical-align:middle;width:30%;" colspan=2>
            <div class="name" style="padding-left:10px;">
              &nbsp;
            </div>
          </td>
        </tr>
     
      </table>

    Язык конечно не php, но достойно.

    leonard, 05 Марта 2011

    Комментарии (0)
  8. PHP / Говнокод #5889

    +160

    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
    <html> 
    <head>
    <title>Калькулятор</title> 
    </head>
    <body>
    <?
    function show()
    {
    global $action, $result, $first, $second;
    ?>
    <FORM method="GET" action="">
    <input type="text" name="first">
    <input type="text" name="second">
    <table>
    <tr>
    <td><input type="submit" name="action" value="sum"></td>
    <td><input type="submit" name="action" value="min"></td>
    <td><input type="submit" name="action" value="mult"></td>
    </tr>
    <tr>
    <td><input type="submit" name="action" value="dev" ;></td>
    <td><input type="submit" name="action" value="stepen";></td>
    <td><input type="submit" name="action" value="procent";></td>
    <td><input type="submit" name="action" value="koren";></td>
    </tr>
    </table>
    </form>
    <?
    }
    function calc() 
    { 
    global $action, $result, $first, $second; 
    switch($action)
    {
    case "sum": $result = $first+$second; 
    break;
    case "min": $result = $first-$second; 
    break;
    case "mult": $result = $first*$second; 
    break;
    case "dev":
    if (!$second) 
    {
    exit("Извините, программа не может выполнить действие: на ноль делить нельзя");
    }
    $result=$first/$second; 
    break;
    case "procent": $result = $first*($second/100); 
    break;
    case "stepen": $result = pow($first, $second); 
    break;
    case "koren": $result = pow($first,0.5); 
    break;
    }
    ?>
    <b> <? echo $result; ?> </b> 
    <?
    }
    if ($action) 
    calc(); 
    else show();
    ?>
    </body> 
    </html>

    qbasic, 04 Марта 2011

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

    +160

    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
    MainDM->ADOQ_pr_kontr_vert->SQL->Add(
            "SELECT Smena, Prostenok, Popravka, Val_zad_temp, t.Zam1, t.Zam2, t.Zam3, t.Zam4, "
            "@sr1:=((t.Zam1 + t.Zam2 + t.Zam3 + t.Zam4) / 4) as sredn, "
            "@p:= @sr1 - (avgtempr.avgZam1 + avgtempr.avgZam2 + avgtempr.avgZam3 + avgtempr.avgZam4) / 4 as popravka  from "
            "(SELECT avg(Zam1) as avgZam1, avg(Zam2) as avgZam2, avg(Zam3) as avgZam3, avg(Zam4) as avgZam4 from "
            "(SELECT "
            "SUM(CASE "
            "WHEN kontroln_vertik.Zamer = 1 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam1, "
            "SUM(CASE "
            "WHEN kontroln_vertik.Zamer = 2 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam2, "
            "SUM(CASE "
            "WHEN kontroln_vertik.Zamer = 3 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam3, "
            "SUM(CASE "
            "WHEN kontroln_vertik.Zamer = 4 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam4 "
            "FROM kontroln_vertik WHERE kontroln_vertik.Date = \'2011-03-02\' "
            "and kontroln_vertik.Storona = 1  "
            "group by kontroln_vertik.Prostenok)  zameri) avgtempr, "
            "(SELECT kontroln_vertik.Smena,  kontroln_vertik.Prostenok, kontroln_vertik.Popravka, "
            "kontroln_vertik.Val_zad_temp, kontroln_vertik.Period_koks, "
            "SUM(CASE  "
            "WHEN kontroln_vertik.Zamer = 1 THEN kontroln_vertik.Value ELSE 0 "
            "END) as Zam1, "
            "SUM(CASE  "
            "WHEN kontroln_vertik.Zamer = 2 THEN kontroln_vertik.Value ELSE 0  "
            "END) as Zam2, "
            "SUM(CASE  "
            "WHEN kontroln_vertik.Zamer = 3 THEN kontroln_vertik.Value ELSE 0  "
            "END) as Zam3, "
            "SUM(CASE  "
            "WHEN kontroln_vertik.Zamer = 4 THEN kontroln_vertik.Value ELSE 0   "
            "END) as Zam4  "
            "FROM kontroln_vertik "
            "WHERE kontroln_vertik.Date = \'2011-03-02\' and   "
            "kontroln_vertik.Storona = 1  "
            "group by kontroln_vertik.Prostenok) t"
            );

    qbasic, 03 Марта 2011

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

    +160

    1. 1
    $VAR['server'] = trim(str_replace("www.","",strtolower($_SERVER['SERVER_NAME'])));

    Угадайте что этот код должен делать, и что он делает на самом деле. Да, это ужас. Это один из многих ужасов, доставшихся мне от предыдущего программиста. До этого самым большим был explode имени файла через точку и подставление второго элемента как расширение.

    BiSe_Trojanov, 02 Марта 2011

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

    +160

    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
    92. 92
    93. 93
    94. 94
    if (isset ($_POST['SendAuthForm'])) {   
    	//массив ошибок
    	$AuthError = array ();
    	
    	if (!isset ($_POST['AuthLogin']) || $_POST['AuthLogin'] == '' || !isset ($_POST['AuthPass']) || $_POST['AuthPass'] == '') {
    		$AuthError[] = $ForumLang['AuthErrors']['WrongLoginPass'];
    	}
    	else {
    		$AuthLogin = trim ($_POST['AuthLogin']);
    		$AuthPass  = trim ($_POST['AuthPass']);
    		$CheckUserValid = 0;	    
    		//проверка логина-пароля
    		$SQLCheckAuth = 'SELECT UserID, UserPassword, UserMail, GroupID
    						 FROM users
    						 WHERE UserLogin = \'' . Defence_EscapeString ($DBType, $AuthLogin) . '\'';
    		$CheckAuthQuery = DB_Query ($DBType, $SQLCheckAuth, $ForumConnection);
    		if (!$CheckAuthQuery) {		 
    			exit ('Error while checking auth data!');
    		}
    		$UserExists = DB_NumRows ($DBType, $CheckAuthQuery);
    		if ($UserExists == 0) {
    			$CheckUserValid++;		      
    		}	       
    		//массив		
    		$UserRow = DB_FetchAssoc ($DBType, $CheckAuthQuery);
    	 //данные		
    		$UserPass = $UserRow['UserPassword'];
    		$UserID   = intval ($UserRow['UserID']);
    		$UserMail = $UserRow['UserMail'];
    		$GroupID  = intval ($UserRow['GroupID']);
    		if (Main_Crypt ($AuthPass) <> $UserPass) {
    			$CheckUserValid++;
    		}
    		if ($CheckUserValid > 0) {
    			$AuthError[] = $ForumLang['AuthErrors']['WrongLoginPass'];
    		}
    		else {
    			//удаление из гостей
    			$SQLDelFromGuests = 'DELETE FROM guest_activity
    								 WHERE SessionID=\'' . $SessionID . '\'';
    			$DelFromGuestsQuery = DB_Query ($DBType, $SQLDelFromGuests, $ForumConnection);
    			if (!$DelFromGuestsQuery) {		     
    				exit ('Error while deleting user from guest table!');
    			}		       
    			//редактирование таблицы пользователя
    			$CurAction = 'main_page';
    			$SQLUpdateUser = 'UPDATE user_activity
    					  SET UserLastLogin=\'' . $Now . '\', UserLastAction=\'' . $CurAction . '\', UserIsOnline=\'yes\'
    							  WHERE UserID=\'' . $UserID . '\'';
    			$UpdateUserQuery = DB_Query ($DBType, $SQLUpdateUser, $ForumConnection);
    			if (!$UpdateUserQuery) {			
    				exit ('Error while updating user status onto \'yes\'!');
    			}
    			//регенерация ид сессии		 
    			session_regenerate_id (TRUE);
    			$SecureString = '';		     
    			//ip пользователя
    			$CurUserIP = $_SERVER['REMOTE_ADDR'];
    			$IPArray = explode ('.', $CurUserIP);
    			$IPRanks = array ();
    			for ($i=0; $i < $NumIPRanks; $i++) {
    				$IPRanks[] = $IPArray[$i];
    			}
    			$IPFinalString = implode ('.', $IPRanks);
    			$IPFinalString = sha1 ($IPFinalString . $AuthSalt);
    			//user-agent
    			$CurUserAgent = $_SERVER['HTTP_USER_AGENT']; 
    			$CurUserAgent = substr ($CurUserAgent, 0, 50); 
    			$CurUserAgent = sha1 ($CurUserAgent . $AuthSalt); 
    			//объединение
    			$SecureString = sha1 ($IPFinalString . $CurUserAgent . $AuthSalt);
    			//случайная строка - хеш
    			$RandomString = Main_GenerateRandString (10, '1');
    			$RandomString = sha1 ($RandomString . $AuthSalt . time ());
    		//данные в сессию
    			unset ($_SESSION['UserData']);
    			$_SESSION['UserData'] = array ();
    			$_SESSION['UserData']['UserType'] = 'member';
    			$_SESSION['UserData']['UserID']   = $UserID;
    			$_SESSION['UserData']['UserName'] = $AuthLogin;
    			$_SESSION['UserData']['GroupID']  = $GroupID;
    			$_SESSION['UserData'][$SecureKey] = $SecureString;
    			$_SESSION['UserData'][$SecureCookieName] = $RandomString;
    			//куки
    			setcookie($SecureCookieName,$RandomString);
    			//перенаправление
    			$_SESSION['Message'] = 'auth_sucess';
    			$URL = '?action=message';
    			Header('Location:' . $SelfName . $URL);
    			exit ();
    		}
    	}       
    	//проверка
    }

    qbasic, 23 Февраля 2011

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