1. C++ / Говнокод #4375

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    std::string ScriptInfo::GetDebugInfo() const
    {
        char sz[256];
        sprintf(sz, "%s ('%s' script id: %u)", GetScriptCommandName(command).c_str(), GetScriptsTableNameByType(type).c_str(), id);
        return std::string(sz);
    }

    Может, не совсем говнокод, но меня от подобного коробит.

    Oops, 17 Октября 2010

    Комментарии (15)
  2. Java / Говнокод #4374

    +144

    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
    public void onMessage(final NetConnection connection, final NetMessage message) {
        final ClientConnection client = (ClientConnection) connection;
        if (message.isCommand(Protocol.CMD_LOGIN)) {
          if (this.auth(client,
              message.getParameter(Protocol.PARAM_NAME, String.class))) {
            final NetMutableMessage msgLogin = new NetMutableMessage(
                Protocol.CMD_LOGIN);
            msgLogin.addParameter(Protocol.PARAM_FROM, client.getNick());
            this.writeMessage(client, null, msgLogin);
          } else {
            this.removeConnection(client);
          }
        }
        if (message.isCommand(Protocol.CMD_LOGOUT)) {
          final NetMutableMessage msgLogout = new NetMutableMessage(
              Protocol.CMD_LOGOUT);
          msgLogout.addParameter(Protocol.PARAM_FROM, client.getNick());
          this.writeMessage(client, null, msgLogout);
          this.removeConnection(client);
        }
        if (message.isCommand(Protocol.CMD_STATUS)) {
          final NetMutableMessage msgStatus = new NetMutableMessage(
              Protocol.CMD_STATUS);
          msgStatus.addParameter(Protocol.PARAM_TYPE,
              message.getParameter(Protocol.PARAM_TYPE));
          msgStatus.addParameter(Protocol.PARAM_FROM, client.getNick());
          this.writeMessage(client, null, message);
          this.removeConnection(client);
        }
        if (message.isCommand(Protocol.CMD_USERS)) {
          final NetMutableMessage msgUsers = new NetMutableMessage(
              Protocol.CMD_USERS);
          msgUsers.addParameter("list", this.getUsers(connection));
          this.writeMessage(client, msgUsers, null);
        }
        if (message.isCommand(Protocol.CMD_SAY)) {
          final NetMutableMessage msgSay = new NetMutableMessage(Protocol.CMD_SAY);
          msgSay.addParameter(Protocol.PARAM_FROM, client.getNick());
          msgSay.addParameter(Protocol.PARAM_MESSAGE,
              message.getParameter(Protocol.PARAM_MESSAGE));
          if (null == message.getParameter(Protocol.PARAM_TO)) {
            this.writeMessage(client, msgSay, msgSay);
          } else {
            this.writeMessage(
                message.getParameter(Protocol.PARAM_TO, String.class), msgSay, null);
          }
        }
        if (message.isCommand(Protocol.CMD_MOVE)) {
          final NetMutableMessage msgMove = new NetMutableMessage(Protocol.CMD_MOVE);
          msgMove.addParameter(Protocol.PARAM_FROM, client.getNick());
          msgMove.addParameter(Protocol.PARAM_CODE,
              message.getParameter(Protocol.PARAM_CODE));
          this.writeMessage(message.getParameter(Protocol.PARAM_TO, String.class),
              msgMove, null);
        }
        if (message.isCommand(Protocol.CMD_OFFER)) {
          final NetMutableMessage msgOffer = new NetMutableMessage(
              Protocol.CMD_OFFER);
          msgOffer.addParameter(Protocol.PARAM_FROM, client.getNick());
          this.writeMessage(message.getParameter(Protocol.PARAM_TO, String.class),
              msgOffer, null);
        }
        if (message.isCommand(Protocol.CMD_ACCEPT)) {
          final NetMutableMessage msgAccept = new NetMutableMessage(
              Protocol.CMD_ACCEPT);
          msgAccept.addParameter(Protocol.PARAM_FROM, client.getNick());
          this.writeMessage(message.getParameter(Protocol.PARAM_TO, String.class),
              msgAccept, null);
        }
        if (message.isCommand(Protocol.CMD_DECLINE)) {
          final NetMutableMessage msgDecline = new NetMutableMessage(
              Protocol.CMD_DECLINE);
          msgDecline.addParameter(Protocol.PARAM_FROM, client.getNick());
          this.writeMessage(message.getParameter(Protocol.PARAM_TO, String.class),
              msgDecline, null);
        }
        if (message.isCommand(Protocol.CMD_END)) {
          final NetMutableMessage msgEnd = new NetMutableMessage(Protocol.CMD_END);
          msgEnd.addParameter("player1",
              message.getParameter(Protocol.PARAM_TO, String.class));
          msgEnd.addParameter("player2", client.getNick());
          this.writeMessage(message.getParameter(Protocol.PARAM_TO, String.class),
              null, msgEnd);
        }
      }

    нагкодил свежачок, прямиком из IDE Eclipse :)

    разрабатываю сетевую мини-игрушку с чатом. Данный метод -- из серверной части, где сервер принимает приходящие сообщения и реагирует на них.
    Обьем метода и однородность кусков намекает, что это пора рефакторить - вот думаю как.

    Lure Of Chaos, 17 Октября 2010

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

    +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
    24. 24
    25. 25
    function SortArray(&$array,$coll,$desc=false)
    {
    	global $temp;
    	if(!function_exists('SorterUp')){
    		function SorterUp($x,$y)
    		{
    			global $temp;
    			if ($x[$temp] == $y[$temp]) return 0;
    			return ($x[$temp] < $y[$temp]) ? -1 : 1;
    		}
    		function SorterDown($x,$y)
    		{
    			global $temp;
    			if ($x[$temp] == $y[$temp]) return 0;
    			return ($x[$temp] > $y[$temp]) ? -1 : 1;
    		}
    	}
    	$temp = $coll;
    	if(!$desc){
    		usort($array,'SorterUp');
    	}else{
    		usort($array,'SorterDown');
    	}
    	unset($temp);
    }

    Продолжаю цикл "Из одной русской CMS". Этот код - PHP замена ORDER BY в мускуле.

    Мартин, 17 Октября 2010

    Комментарии (24)
  4. VisualBasic / Говнокод #4372

    −99

    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
    10 DEFM 13:VAC
    20 PRINT " Генератор."
    30 FOR N=0 TO 6:Z$(N)="00000":NEXT N
    40 CSR 0,:FOR N=6 TO 0 STEP -1:FOR M=1 TO 5
    50 IF GETC(Z$(N),M)="1";DRAW M-1,N
    60 NEXT M:NEXT N
    70 DRAW X,Y:K$=KEY
    80 DRAWC X,Y:IF K$="" THEN 70
    90 IF GETC(Z$(Y),X+1)="1";DRAW X,Y
    100 IF K$="8";IF Y<6;Y=Y+1:GOTO 70
    110 IF K$="2";IF Y>0;Y=Y-1:GOTO 70
    120 IF K$="4";IF X>0;X=X-1:GOTO 70
    130 IF K$="6";IF X<4;X=X+1:GOTO 70
    140 IF K$=" " THEN 200
    150 IF K$="I" THEN 270
    160 IF K$="C" THEN 30
    170 IF K$="D" THEN 300
    175 IF K$="U" THEN 350
    180 IF K$="P" THEN 400
    185 IF K$=CHR 123 THEN 450
    190 GOTO 70
    200 A$="1"
    210 IF GETC(Z$(Y),X+1)="1";A$="0"
    220 $=Z$(Y)
    230 B$=MID(1,X)
    240 C$=MID(X+2,4-X)
    250 Z$(Y)=B$+A$+C$
    260 GOTO 70
    270 FOR N=0 TO 6:B$="":FOR M=1 TO 5
    280 IF GETC(Z$(N),M)="0";B$=B$+"1":GOTO 290
    285 B$=B$+"0"
    290 NEXT M:Z$(N)=B$:NEXT N:GOTO 40
    300 B$=Z$
    310 FOR N=0 TO 5
    320 Z$(N)=Z$(N+1)
    330 NEXT N
    340 Z$(6)=B$
    345 GOTO 40
    350 B$=Z$(6)
    360 FOR N=6 TO 1 STEP -1
    370 Z$(N)=Z$(N-1)
    380 NEXT N:Z$=B$
    390 GOTO 40
    400 FOR N=0 TO 6
    410 Z$(N+7)=Z$(N)
    420 NEXT N
    430 FOR N=0 TO 6
    440 Z$(N)=Z$(13-N)
    445 NEXT N:GOTO 40
    450 B$="":FOR N=6 TO 0 STEP -1:S=0:L=1
    460 FOR M=5 TO 1 STEP -1
    470 S=S+VAL GETC(Z$(N),M)*L
    475 L=L*2
    480 NEXT M
    490 IF S<10; B$=B$+CHR(48+S):GOTO 510
    500 B$=B$+CHR(55+S)
    510 NEXT N
    520 CSR 2:PRINT "C=";B$;
    530 GOTO 70

    Не VisualBasic, но тоже Бейсик. Программа для микрокомпьютера Электроника МК-85М. Писал ее (и еще много других) лет 10 назад.
    Подробнее о назначении программы в комментарии.

    Arigato, 16 Октября 2010

    Комментарии (16)
  5. SQL / Говнокод #4371

    −186

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    select books.title,subjects.title from books,subjects,subjects_specialty,specialty,chair
    	where (books.subject_id=subjects.id)
    and (subjects.id=subjects_specialty.subject_id)
    and (subjects_specialty.specialty_id=specialty.id)
    and (specialty.chair_id=chair.id)
    and (chair.title='КИИ');

    Мой первый опыт в sql навреняка вам понравится :)

    werewolfv, 16 Октября 2010

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

    +163

    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
    <?php
    
    session_start();
    
    // выводим верх страницы
    include 'verh.php';
    
    // проверяем данные из формы
    $error='';
    if (!preg_match('|^http://[0-9a-z\-\.]+\.[a-z]{2,4}|i', $_POST['url'])) {$error=$error."Ошибка. Не верно указан адрес сайта!<br/>";}
    if (empty($_POST['name'])) {$error=$error."Ошибка. название сайта!<br/>";}
    if ($_POST['words']!=$_SESSION['word']) {$error=$error."Ошибка. Неверно введено число!<br/>";}
    if (empty($_POST['opis'])) {$error=$error."Ошибка. описание сайта!<br/>";}
    if (!preg_match('|^[a-z0-9]{3,}$|i', $_POST['pass'])) {$error=$error."Ошибка. пароль!<br/>";}
    if (!preg_match('|^[a-z0-9\.\_\-]+\@[a-z0-9\.\_\-]+$|i', $_POST['mail'])) {$error=$error."Ошибка. Не верно указан емаил!<br/>";}
    if ( (!empty($_POST['wm'])) and (!preg_match('|R\d{12}|', $_POST['wm'])) ) {$error=$error."Ошибка. WMR-кошелек должен быть вида R111222333444<br/>";}
    if (mysql_num_rows(mysql_query("SELECT * FROM inet_sites WHERE url='$_POST[url]'"))) {$error=$error."Ошибка! Этот сайт уже зерегистрирован";}
    if (mysql_num_rows(mysql_query("SELECT * FROM inet_ban WHERE url='$_POST[url]'"))) {$error=$error."Ошибка! Этот сайт заблокирован";}

    Много всякого добра на диске валяется. Вот какой-то двиг под названием (дословно): "Скрипт каталога сайтов с системой выплат за переходы и рефералов!".
    По сути там кроме говнокода ничего нет. То, что привел - начало файла goreg.php

    Arigato, 16 Октября 2010

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    /**
    	 * Классы символов генерируются symclass.php
    	 *
    	 * @var array
    	 */
    	protected $chClasses = array(0=>512,1=>512,2=>512,3=>512,4=>512,5=>512,6=>512,7=>512,8=>512,9=>32,10=>66048,11=>512,12=>512,13=>66048,14=>512,15=>512,16=>512,17=>512,18=>512,19=>512,20=>512,21=>512,22=>512,23=>512,24=>512,25=>512,26=>512,27=>512,28=>512,29=>512,30=>512,31=>512,32=>32,97=>71,98=>71,99=>71,100=>71,101=>71,102=>71,103=>71,104=>71,105=>71,106=>71,107=>71,108=>71,109=>71,110=>71,111=>71,112=>71,113=>71,114=>71,115=>71,116=>71,117=>71,118=>71,119=>71,120=>71,121=>71,122=>71,65=>71,66=>71,67=>71,68=>71,69=>71,70=>71,71=>71,72=>71,73=>71,74=>71,75=>71,76=>71,77=>71,78=>71,79=>71,80=>71,81=>71,82=>71,83=>71,84=>71,85=>71,86=>71,87=>71,88=>71,89=>71,90=>71,1072=>11,1073=>11,1074=>11,1075=>11,1076=>11,1077=>11,1078=>11,1079=>11,1080=>11,1081=>11,1082=>11,1083=>11,1084=>11,1085=>11,1086=>11,1087=>11,1088=>11,1089=>11,1090=>11,1091=>11,1092=>11,1093=>11,1094=>11,1095=>11,1096=>11,1097=>11,1098=>11,1099=>11,1100=>11,1101=>11,1102=>11,1103=>11,1040=>11,1041=>11,1042=>11,1043=>11,1044=>11,1045=>11,1046=>11,1047=>11,1048=>11,1049=>11,1050=>11,1051=>11,1052=>11,1053=>11,1054=>11,1055=>11,1056=>11,1057=>11,1058=>11,1059=>11,1060=>11,1061=>11,1062=>11,1063=>11,1064=>11,1065=>11,1066=>11,1067=>11,1068=>11,1069=>11,1070=>11,1071=>11,48=>337,49=>337,50=>337,51=>337,52=>337,53=>337,54=>337,55=>337,56=>337,57=>337,34=>57345,39=>16385,46=>1281,44=>1025,33=>1025,63=>1281,58=>1025,59=>1281,1105=>11,1025=>11,47=>257,38=>257,37=>257,45=>257,95=>257,61=>257,43=>257,35=>257,124=>257,);

    jevix.class.php

    hybroid, 16 Октября 2010

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

    +77

    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
    public void actionPerformed(ActionEvent e) {
                System.out.println("Przed utworzeniem resultseta");
                Statement stm=null;
                try{stm = Aplikacja.dajPolaczenieDB().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);}
                catch (SQLException ex){System.out.println("Wystąpił błąd przy próbie utworzemia Statement: "+ex.getLocalizedMessage());}
                String z_sql = "SELECT id,imie FROM crm_sl_imion";
                ResultSet rs=null;
                try{rs = stm.executeQuery(z_sql);}
                catch(SQLException e1){System.out.println("Wystąpił błąd przy próbie utworzeniu ResultSet'a: "+e1.getLocalizedMessage());}
                try{
                    System.out.println("Rozpoczynam transakcje");
                    Aplikacja.dajPolaczenieDB().setAutoCommit(false);
                }catch(SQLException e1){
                    System.out.println("Wystąpił błąd przy probie rozpoczęcia transkacji");
                }
                String z_insert="insert into crm_sl_imion(imie) values('Zdzisek')";
                Statement stm2=null;
                try{
                   stm2 = Aplikacja.dajPolaczenieDB().createStatement();
                }catch(SQLException e1){
                   System.out.println("Wystąpił błąd przy próbie utowrzenia drugiego Stadementa: "+e1.getLocalizedMessage());
                }
                try{
                   stm2.execute(z_insert);
                }catch(SQLException e1){
                   System.out.println("Wystąpił błąd przy próbie wykonywania sql'a: "+z_insert+", błąd: "+e1.getLocalizedMessage());
                }
                try{
                    System.out.println("Odwijam transakcje");
                    Aplikacja.dajPolaczenieDB().commit();
                    Aplikacja.dajPolaczenieDB().setAutoCommit(true);
                }catch(SQLException e1){
                    System.out.println("Wystąpił błąd przy odwijaniu transakcji");
                }
                try{
                while(rs.next()){
                    System.out.println("id: "+rs.getString("id")+" imie: "+rs.getString("imie"));
                }
                }catch(SQLException e2){
                    System.out.println("Wystąpił błąd przy próbie odczytania danych: "+e2.getLocalizedMessage());
                }
                try{
                    stm.close();
                    System.out.println("Po zamknięciu Statement'a");
                }catch(SQLException e1){
                    System.out.println("Wystąpił błąd przy próbie zamknięcia Statement'a");
                }
            }

    xaoc, 16 Октября 2010

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

    +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
    /*
        Макрос генерирует внутренности функции-заглушки OpenGL.
    */
    #define BWT_DECLARE_OPENGL_PROC_IMPL(PROC, PROC_TYPE, ...)                                  \
        static PROC_TYPE _##PROC = 0;                                                           \
                                                                                                \
        if (_##PROC)                                                                            \
            return _##PROC(__VA_ARGS__);                                                        \
        else                                                                                    \
        {                                                                                       \
            _##PROC = TryToGetProcAddress<PROC_TYPE>(#PROC);    return _##PROC(__VA_ARGS__);    \
        }
    
    /*
        Функция получает адрес функции, или возбуждает исключение, если адрес получить не удалось.
    */
    template<typename proc_type>
    proc_type TryToGetProcAddress(const char *proc_name) throw(error_type<VIDEO>)
    {
        proc_type address = reinterpret_cast<proc_type>(::SDL_GL_GetProcAddress(proc_name));
    
        if (!address)
            BWT_THROW_VIDEO_ERROR(UNDEFINED_ERROR, "OpenGL version does not supported");
    
        return address;
    }
    
    GLAPI void APIENTRY glCullFace (GLenum mode)
    {
        BWT_DECLARE_OPENGL_PROC_IMPL(glCullFace, PFNGLCULLFACEPROC, mode);
    }
    
    ...

    ZltCity, 15 Октября 2010

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

    +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
    // Функция изменяет поле счетчика у объекта
    // $table - таблица с изменяемыми данными
    // $where - условия для отсеивания значений
    // $coll - ячейка, которая содержит счетчик
    // $val - значение, которое нужно прибавить к исходному
    function CalcCounter($table, $where, $coll, $val) {
    	global $db;
    	$db->Select($table, $where);
    	if($db->NumRows()>0){
    		$val = $db->QueryResult[0][$coll] + $val;
    		$db->Update($table,"$coll='$val'",$where);
    	}
    }

    Из ядра одной русской CMS...

    Мартин, 15 Октября 2010

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