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

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

    +134

    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace ConnectToTenderGov
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                Connect connect = new Connect();
                webBrowser1.Navigate("https://tender.me.gov.ua/EDZFrontOffice/menu/ru/");
            
                while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                    Application.DoEvents();
                webBrowser1.Document.GetElementById("login:login").SetAttribute("value", "***@***.com");
                webBrowser1.Document.GetElementById("login:password").SetAttribute("value", "***");
                webBrowser1.ScriptErrorsSuppressed = true;
                webBrowser1.Document.GetElementById("login:loginButtonPopup").InvokeMember("click");
            }
        }
    }

    Пытался реализовать модуль авторизации, требование - должны были использоваться cookie.

    qstd, 02 Мая 2014

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

    +22

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    switch(par)
    {
      case 'O' : cdcb.Parity = ODDPARITY;
      case 'M': cdcb.Parity = MARKPARITY;
      case 'E'  : cdcb.Parity = EVENPARITY;
      case 'N' : cdcb.Parity = NOPARITY;
      default  : cdcb.Parity = NOPARITY;
    }

    И это в классе dracula

    xantue, 24 Марта 2014

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

    +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
    function unique_id($extra = 'c')
    {
    	static $dss_seeded = false;
    	global $config;
    
    	$val = $config['rand_seed'] . microtime();
    	$val = md5($val);
    	$config['rand_seed'] = md5($config['rand_seed'] . $val . $extra);
    
    	if ($dss_seeded !== true && ($config['rand_seed_last_update'] < time() - rand(1,10)))
    	{
    		set_config('rand_seed_last_update', time(), true);
    		set_config('rand_seed', $config['rand_seed'], true);
    		$dss_seeded = true;
    	}
    
    	return substr($val, 4, 16);
    }

    Казалось бы, что может быть интересного в генерации случайного числа для хеширования данных?!
    Ан нет, хороший, творческий художник даже такую скучную вещь может превратить в произведение искусства.
    Код взят из самого популярного движка для форумов- phpBB.

    Sumanai, 22 Марта 2014

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

    +152

    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
    // Калькулятор умеющий умножать, делить, складывать и вычитать.
    
    
    <?php
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    	if (isset($_POST['num1'])) { 
    		if(is_numeric($_POST['num1'])) {
    			$num1 = strip_tags($_POST['num1']*1); 
    			}
    		} 
    		elseif (isset($_POST['num1'])) {
    			echo "Неверное значение Число 1";
    		}
    	if (isset($_POST['num2'])) { 
    		if(is_numeric($_POST['num2'])) {
    			$num2 = strip_tags($_POST['num2']*1); 
    			}
    		} 
    		elseif (isset($_POST['num2'])) {
    			echo "Неверное значение Число 2";
    		}
    	if (isset($_POST['operator'])) { 
    			$operator = $_POST['operator']; 
    		} 
    		elseif (isset($_POST['operator'])) {
    			echo "Неверное значение Оператор";
    		}
    		
    
    		switch ($operator) {
    		case '-':
    		$output .= $num1-$num2;break;
    		case '+':
    		$output .= $num1+$num2;break;
    		case '*':
    		$output .= $num1*$num2;break;
    		case '/':
    			if ($num2 == 0) {echo "На 0 делить нельзя";}else{$output .= $num1/$num2;break;}
    			default:
    				$output = "Неизвестный оператор ".$operator;
    	}
    }
    	
    ?>
    <h1>Калькулятор</h1>
    
    <?php
    
    if (isset($output)){
    	echo "Результат $output";
    }
    	
    ?>
    
    <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
    
    Число 1:<br />
    <input type="text" name="num1" /><br /><br />
    
    Оператор:<br />
    <input type="text" name="operator" /><br /><br />
    
    Число 2:<br />
    <input type="text" name="num2" /><br /><br />
    
    <input type="submit" value="Считать!" />
    
    </form>

    // Калькулятор умеющий умножать, делить, складывать и вычитать.

    Arthur, 14 Марта 2014

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function boolConvert($value){
            if(strtolower($value)=='true')
                return 1;
            if(strtolower($value)=='false')
                return 0;
            return $value;
        }

    GoodTalkBot, 05 Марта 2014

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public static string CreateBrowserCacheExtension(object key)
    {
        //...Остальной код опущен для ясности
        return "Cache=" + Math.Abs(key.GetHashCode());
    }

    Legacy code из проекта над которым я работаю.
    Косяк в том, что GetHashCode() иногда возвращает значение, равное System.Int32.MinValue.
    А это в свою очередь приводит к OverflowException, в случае с Math.Abs(...);

    pikowatt, 14 Февраля 2014

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

    +138

    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
    private function toDBFields($fields){
    			$db_fields = array();
    			if ($fields){
    				foreach($fields as $field){
    					switch ($field){
    
                            case 'p_bits':
                                if (!array_search('b1',$db_fields))	$db_fields[] = 'b1';
                                break;
                            case 'n2':
                                if (!array_search('b1',$db_fields))	$db_fields[] = 'b1';
                                break;
                            case 'n1':
                                if (!array_search('b1',$db_fields))	$db_fields[] = 'b1';
                                break;
    						case 'cntdf':
    							if (!array_search('cntdf',$db_fields))	$db_fields[] = 'cntdf';
    							break;
    						case 'first_pckg':
    						
    							break;
    						case 'az':
    							if (!array_search('az',$db_fields))		$db_fields[] = 'az';
    							break;
    						case 'akb_v':
    							//if (!array_search('b2',$db_fields))		$db_fields[] = 'b2';
    							if (!array_search('b3',$db_fields))		$db_fields[] = 'b3';
    							break;
    						case 'p1code':
                            case 'ignition_ap1':
    							if (!array_search('b4',$db_fields))		$db_fields[] = 'b4';
    							if (!array_search('b6',$db_fields))		$db_fields[] = 'b6';
    							break;
    						case 'fuel_p2':
                            case 'fuel_p2_debug':
                            case 'p2code':
    							if (!array_search('b5',$db_fields))		$db_fields[] = 'b5';
    							if (!array_search('b6',$db_fields))		$db_fields[] = 'b6';
    							break;
                            case 'fuel_p3':
                            case 'fuel_p3_debug':
    						case 'p3code':
                            case 'p3code_debug':
    							if (!array_search('b7',$db_fields))		$db_fields[] = 'b7';
    							if (!array_search('b6',$db_fields))		$db_fields[] = 'b6';
    							break;
                            case 'fuel_p3p4_2drt':
                                if (!array_search('b8',$db_fields))		$db_fields[] = 'b8';
    							if (!array_search('b7',$db_fields))		$db_fields[] = 'b7';
    							if (!array_search('b6',$db_fields))		$db_fields[] = 'b6';
    							break;
                            case 'fuel_p2p3':
                                if (!array_search('b5',$db_fields))		$db_fields[] = 'b5';
    							if (!array_search('b7',$db_fields))		$db_fields[] = 'b7';
    							if (!array_search('b6',$db_fields))		$db_fields[] = 'b6';
    							break;
                            case 'fuel_p4':
                            case 'p4code_debug':
    						case 'p4code':
    							if (!array_search('b8',$db_fields))		$db_fields[] = 'b8';
    							if (!array_search('b6',$db_fields))		$db_fields[] = 'b6';
    							break;
    					}
    				}
    			}
    
    			return $db_fields;

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

    Deimm, 13 Февраля 2014

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

    +130

    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
    public 	function actionSelect_model(){
    		
    	 
    		
    	$data = Yii::app()->db->createCommand()
    			->select('*')
    			->from('moto')
    			->where(' wmotoid = '.$_GET[id] )
    			->queryAll();
    			
    		foreach($data as $F=>$L){
    			echo '<option value="'.$L[moto_id].'">'.$L[moto_text].'</option>';
    			}
    		
    		
    	}

    Инет магазин на Yii. Контроллер.

    flashbag, 21 Октября 2013

    Комментарии (27)
  10. Си / Говнокод #13768

    +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
    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
    #include <stdio.h>
    #include <dlfcn.h>
    #include <getopt.h>
    #include <string.h>
    #include <stdlib.h>
    
    #define int64 long long
    
    const char* help =
    "       -h,--help  это сообщение\
            -f,--func  имя функции\
            -n,--num   количество аргументов функции\
            -a,--arg1  первый аргумент\
            -b,--arg2  второй аргумент";
    
    struct option longopts[] ={
            {"func",1,NULL,'f'},
            {"help",1,NULL,'h'},
            {"num", 1,NULL,'n'},
            {"arg1",1,NULL,'a'},
            {"arg2",1,NULL,'b'},
            {0,0,0,0}
    };
    
    void strtoa(void** arg, char* optarg){
        int tmp;
        char* e;
        tmp = strtol(optarg,&e,10);
        if (e != optarg + strlen(optarg)){
            *arg = malloc(strlen(optarg));
            strcpy((char*)*arg,optarg);
        } else *arg = (void*)tmp;
    
    }
            
    int64 main(int argc, char** argv){
      
      int opt, num = 0;
      void *a,*b;
      char* e;
    
      void* (*func2)(void*,void*), 
            (*func1)(void*), 
            (*func0)(), *func = 0;
      
      while((opt = getopt_long(argc,argv,"f:h:n:a:b:",longopts,NULL)) != -1){
          switch (opt){
              case 'h':
                  fprintf(stderr,"%s",help);
                  exit(0);
              case 'f':
                  func = dlsym(NULL,optarg);
                  break;
              case 'n':
                  num = atoi(optarg);
                  if (num > 2) exit(1);
                  break;
              case 'a':
                  strtoa(&a,optarg);
                  break;
              case 'b':
                  strtoa(&b,optarg);
                  break;
          }
      }
      
      if(func != 0){
          switch (num){
              case 0: 
                func0 = func;
                (*func0)();
                break;
              case 1:
                func1 = func;
                (*func1)(a);
                break;
              case 2:
                func2 = func;
                (*func2)(a,b);
          }
      }
      
      return 0;
    }

    Запускает любую функцию линукс, содержащую до 2-х аргументов. В хелпе все написано. Собирать так c флагом -dl.
    Использовать так:
    a.out -f sleep -n 1 -a 1 - sleep на 1 секунду
    a.out -f printf -n 1 -a OK - выводит без конца строки
    вдохновлен этим:
    http://govnokod.ru/13763

    Я, crastinus97, говорю вам: этого способа нет в man. Я его сам открыл.

    crastinus, 11 Сентября 2013

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

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private void MultiSelectBox1_CheckedChanged(object sender, EventArgs e) {
               if (MultiSelectBox1.Checked == true) {
                    openFileDialog1.Multiselect = true;
                } else {
                    openFileDialog1.Multiselect = false;
                }
            }

    Lokich, 30 Августа 2013

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