1. Java / Говнокод #7523

    +80

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
    ...
    } catch (Exception ex) {
    	wdComponentAPI.getMessageManager().reportException("ERROR", true);
    }

    Информативно так

    foGa, 12 Августа 2011

    Комментарии (25)
  2. Си / Говнокод #7522

    +142

    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
    /* gcc -static -Os -W -nostartfiles -fno-stack-protector -U_FORTIFY_SOURCE glibc_preinstall.c */
    
    #include <unistd.h>
    #include <signal.h>
    #include <sys/utsname.h>
    
    #ifndef MIN_KERNEL_VERSION
    # error "MIN_KERNEL_VERSION not defined"
    #endif
    #define PRINT_MSG(msg) write(2, (msg), sizeof(msg) - 1)
    #define FATAL(msg) do {PRINT_MSG(msg); kill_parent(); _exit(1);} while(0)
    
    static void kill_parent(void)
    {
    	pid_t pid = getppid();
    	if (pid < 100)
    		return;
    
    	PRINT_MSG("Sending SIGSTOP signal to parent process.\n");
    	(void) kill(pid, SIGSTOP);
    }
    
    static int is_digit(char c)
    {
    	return c >= '0' && c <= '9';
    }
    
    static int
    parse_release(const char *p)
    {
    	unsigned int i, osversion = 0;
    
    	for (i = 0; i < 3 && *p; i++, ++p)
    	{
    		unsigned int d = 0;
    
    		for (; is_digit(*p); ++p)
    			d = d * 10 + (*p - '0');
    
    		if (d == 0 || d >= 255 || (i < 2 && *p && *p != '.'))
    		{
    			osversion = 0;
    			break;
    		}
    		osversion |= d << (16 - 8 * i);
    	}
    	return osversion;
    }
    
    static void
    check_kernel_version(void)
    {
    	struct utsname name;
    
    	if (uname(&name) < 0)
    		FATAL("kernel version check failed: uname syscall failed.\n");
    
    	if (parse_release(name.release) < parse_release(MIN_KERNEL_VERSION))
    		FATAL("kernel version check failed: KERNEL TOO OLD, "
    		      "minimal version supported by glibc is " MIN_KERNEL_VERSION
    		      ".\n");
    }
    
    void
    _start(void)
    {
    	check_kernel_version();
    	_exit(0);
    }

    Скрипт на языке Си, проверяющий, что загружено ядро версии не меньшей чем MIN_KERNEL_VERSION (2.6.18 на момент написания). Очень красиво взрывается на ядре 3.0.

    raorn, 11 Августа 2011

    Комментарии (44)
  3. PHP / Говнокод #7521

    +170

    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
    foreach ( $HTTP_POST_VARS as $key => $value ) {$$key=$value;};
    
    function check_existing_dateChK($checking_date) {
        	$query = "SELECT data FROM `kursChK` WHERE `data` = '$checking_date'";
        	$result = mysql_query($query) or die("Query failed");
        	$row = mysql_fetch_assoc($result);
    	$exist_date=$row[data];
    	if ($exist_date=="") 	{
            	return true;
        		}
    	else 
    		{return false;}
    }
    
    //Рисуем форму
    	echo "<form method=post action=$PHP_SELF>
    	<table border=0 align=center>\n
    	
    	<table border=0 align=center>\n
    	<div style='font: 14px Tahoma; color: #F17D18; font-weight: bold;'>Заполнение курсов для Интернет-банка</div><br>
    	<tr><td>Дата</td>\n
    	<td><input type='text' name='dataChK' value = '$current_date' maxlength=10></td>\n
    	</tr>\n
    	<tr><td>Валюта</td><td>Покупка</td><td>Продажа</td></tr>\n
    	<tr><td>USD</td>
    	<td><input type='text' name='usdpoChK' value = '$usdpoChK_last' maxlength=5></td>
    	<td><input type='text' name='usdprChK' value = '$usdprChK_last' maxlength=5></td></tr>\n
    	<tr><td>EURO</td>
    	<td><input type='text' name='eurpoChK' value = '$eurpoChK_last' maxlength=5></td>
    	<td><input type='text' name='eurprChK'value = '$eurprChK_last' maxlength=5></td></tr>\n
    	</table\n>
    	
    	
    	<input type=submit value='Добавить курсы' name='sub'> 
    	<input type=reset value=Вернуть name= reset value = '$data_l'> 
    	</form><br><center><a href='http://10.1.1.234/ibank_kurs/trans.php'>Обновить курсы в ЧК</a></center><br>";
    
    // ... много говна ...
    
      if ($sub=='Добавить курсы' and ($dataChK == "" or !check_existing_dateChK($dataChK)))
      {
        ?>
        <SCRIPT LANGUAGE="javascript"> alert("Запись с такой датой уже существует");
        javascript:history.back(1);
        </SCRIPT>
        <?
        $add_record=false;
      }
    /.../ и так еще раз 20 в коде ниже

    Обратите внимание, каким способом мы узнаем, какое действие совершил пользователь - по надписи на кнопочке! Про SQL-запрос я вообще молчу.

    scriptin, 11 Августа 2011

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

    +161

    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
    if(isset($_POST['poisk'])){$poisk=$_POST['poisk']; $_SESSION['poisk']=$_POST['poisk'];}else{$poisk=$_SESSION['poisk'];}
    		 $prov=intval($_GET['providers']); if($prov==0){unset ($prov);}
    		 $rub=intval($_GET['rubric']); if($rub==0){unset ($rub);}
    		 $gro=intval($_GET['group']); if($gro==0){unset ($gro);}
    		 $con=intval($_GET['country']); if($con==0){unset ($con);}
    		 $ven=intval($_GET['vendor']); if($ven==0){unset ($ven);}
    		 $uid=intval($_GET['uid']); if($uid==0){unset ($uid);}
    		 $str=intval($_GET['str']); if($str==0 or !isset($str) or $str<0){$str=1;}
    		 $contr=intval($_GET['kontrakt']); if($contr==0){$contr=2;}
    		 if(isset($_POST['strok']) and intval($_POST['strok'])!=0){$_SESSION['stroks']=intval($_POST['strok']);}
    		 if(!isset($_SESSION['stroks'])){$strok=7;}else{$strok=$_SESSION['stroks'];}
    		 if(isset($_GET['sort']) and trim($_GET['sort'])!=''){if($_SESSION['sort']==trim($_GET['sort'])){$changesort=1;} $_SESSION['sort']=trim($_GET['sort']);}
    		 $sort=$_SESSION['sort']; if(!isset($_SESSION['sort'])){$sort='nazvanie'; $_SESSION['sort']='nazvanie';}
    		 if(isset($_GET['by']) and trim($_GET['by'])!='' and $changesort==1){$_SESSION['by']=trim($_GET['by']);}
    		 $by=$_SESSION['by']; if(!isset($_SESSION['by'])){$by='ASC'; $_SESSION['by']='ASC';}
    		 if(isset($ven)){
    		 $vat=mysql_fetch_array(mysql_query("SELECT nazvanie FROM partners WHERE ven=".$ven));
    		 $tven=$vat[0];}
    		 if(isset($con)){$katalog=2;}
    		 if(isset($rub)){$katalog=1;}
    		 if($search==2 or $search==1){$katalog=3;}
    		 if(isset($ven) and isset($gro) and $ven!=0 and $gro!=0){
    if($_SESSION['change']!=$ven.$gro or (!isset($_GET['vendor']) and $search!=1 and $search!=2) or !isset($_SESSION['change'])){$_SESSION['change']=$ven.$gro; $sort='nazvanie'; $_SESSION['sort']='nazvanie'; $by='ASC'; $_SESSION['by']='ASC';}

    Особенно понравилось название - "catalogue.php". =)

    nislova, 11 Августа 2011

    Комментарии (21)
  5. Python / Говнокод #7519

    −92

    1. 1
    2. 2
    intToStr = { x:'%s'%x for x in range(-1000, 1000) }
    intToStr[-543]   # <- '-543'

    ЭТО ПИТОН!!!

    Fai, 11 Августа 2011

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

    +139

    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
    private int GetMaxDayValue(int month, int year)
        {
            int value = 0;
            switch (month)
            {
                case 1:
                    value = 31;
                    break;
                case 2:
                    switch (year)
                    {
                        case 2008:
                            value = 29;
                            break;
                        case 2009:
                            value = 28;
                            break;
                        case 2010:
                            value = 28;
                            break;
                        case 2011:
                            value = 28;
                            break;
                        case 2012:
                            value = 29;
                            break;
                        case 2013:
                            value = 28;
                            break;
                        case 2014:
                            value = 28;
                            break;
                        case 2015:
                            value = 28;
                            break;
                        case 2016:
                            value = 29;
                            break;
                    }
    
                    break;
                case 3:
                    value = 31;
                    break;
                case 4:
                    value = 30;
                    break;
                case 5:
                    value = 31;
                    break;
                case 6:
                    value = 30;
                    break;
                case 7:
                    value = 31;
                    break;
                case 8:
                    value = 31;
                    break;
                case 9:
                    value = 30;
                    break;
                case 10:
                    value = 31;
                    break;
                case 11:
                    value = 30;
                    break;
                case 12:
                    value = 31;
                    break;
            }
            return value;
        }

    Кусок кода из активно используемого корпоративного приложения :)

    TasmX, 11 Августа 2011

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

    +165

    1. 1
    2. 2
    foreach ($_POST as $kp => $post)
    	$_POST2[$kp] = $post;

    Это написано в самом начале того скрипта, что мне дали фиксить, в коде я встретил строчки описанные выше, а также деление на 0 и неправильно раставленные скобки в условиях с && и ||

    DarkThinker, 11 Августа 2011

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

    +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
    $offset = intval($_POST['offset']);  
            $sql    = mysql_query("SELECT * FROM `test` ORDER BY id DESC LIMIT $offset, 5");  
            if(mysql_num_rows($sql)>0) { 
            while($post = mysql_fetch_assoc($sql)){  
                foreach($post AS $n=>$m){  
                    $post[$n] = utf8_encode($m); 
                }  
                $json['more'][] = $post; # чтобы было легче до 
            }   
             if(count($json['more']))  { 
                 $json['ok'] = '1';  
             } else {  
                 $json['ok'] = '0'; 
             }      
            } else { 
               $json['ok']='3'; 
            }     
            mysql_close($db);  
        
    echo json_encode($json);

    Индусский метод выборки записей из таблицы.

    fqnm, 11 Августа 2011

    Комментарии (3)
  9. Java / Говнокод #7515

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public class Settings {
    
    	public static String CURRENCY = "руб.";
    	
    	public static void setCurrency(String currency) {
    		CURRENCY = currency != null ? currency : "руб.";
    	}
    	
    }

    Мой проект. Можно ли считать это ГК?

    tir, 11 Августа 2011

    Комментарии (243)
  10. 1C / Говнокод #7514

    −129

    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
    . . .
    	ццц=0;                               
    	Если Сотрудникз.Выбран()=0 Тогда
    		Сомр= СоздатьОбъект("Справочник.Сотрудники");
    		Сомр.ВыбратьЭлементы();     
    		цццк=50000;
    	Иначе
    		Сомр=Сотрудникз;
    		цццк=1;
    	КонецЕсли;	  
    	Пока ((ццц<цццк) ) цикл   
    		ццц=ццц+1;    
    		Если цццк>1 Тогда
    			Если (Сомр.ПолучитьЭлемент()=0) Тогда
    				Прервать;
    			КонецЕсли;  
    		КонецЕсли;	 
    		Сотрудник = Сомр.ТекущийЭлемент();   
    		Если Сотрудник.ЭтоГруппа()=1 Тогда
    			продолжить;
    		КонецЕсли;
                    . . .
    
    По нормальному решается:
    
        Сотр = СоздатьОбъект("Справочник.Сотрудники");
        Сотр.ВыбратьЭлементы();
        Пока  (Сотр.ПолучитьЭлемент() = 1)  Цикл
          . . . 
        КонецЦикла

    Досталось в наследство на основной работе, самописная конфа на 7.7,
    как выяснилось этот участок кода писала 50-ти летняя женщина-программист

    adammartin, 11 Августа 2011

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