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

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

    +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
    <?php
    
     
    include 'config.php';
    
    
    $result = mysql_query ("SELECT * FROM albums ");
     echo "<div class=\"thumbnails_cover\">
    <div class=\"thumbnails\">
    "; 
    $row = mysql_num_rows($result); 
    $row = (($row%8) == 0)? $row:$row+0;    
        for($i=1; $i <= $row; $i++)    
        { 
    $myrow = mysql_fetch_assoc($result); 
     $id= $myrow["id"] ; 
    
    $img_pr= $myrow["path_preview"];
    
    
    echo " 
    
    
    
        <ins class=\"thumbnail\">
            <div class=\"r\">
       <a href=\"index.php?id=$id\">
                <img width=\"120\" height=\"120\" src=\"$img_pr\" alt=\"123\" border=\"0\" />
                         </a><br />
    
       
      
            &nbsp;<a href= \"index.php?id=$id\">".$myrow["name"]."</a>
    </div>
        </ins>
           ";    
        if(($i%3) == 0 )  
        echo " 
       ";   
        }  
      echo " 
     </div>
    </div>";
    
    	
    
    ?>

    Хоть плач...

    nethak, 28 Октября 2011

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

    +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
    include '../config.php';
    
    if (isset($_POST['code']))
    {
    $kyda=$_POST['kyda'];
    $name=$_POST['name'];
    	
    $code=$_POST['code'];
    $result = mysql_query ("INSERT INTO cat(parent_id,name,text)
    VALUES ('$kyda','$name','$code') ");
    if($result == 'true')
    {
    echo "<b>Данные успешно добавлены</b><br />";
    echo "<a href='index.php'>Перейти на главную</a>";
    exit;
    }
    else
    {
    echo "Ошибка при добавлении в БД";
    }
    }

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

    nethak, 28 Октября 2011

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?xml version="1.0"?>
    -<DocumentElement> 
    	<o2p time="27.10.2011 8:00:38"/>
    	<o2p timecreate="26.10.2011 22:43:17"/> 
    	<o2p di="0.0000" g="" d="" dv="0.0000" i="8751" q="4.0000" c="C3212"/> 
    	<o2p di="0.0000" g="" d="" dv="0.0000" i="8751" q="2.0000" c="C3213"/>
    ...

    после обновления ПО в файлах выгрузки добавились строки 3-4

    nk112, 27 Октября 2011

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

    +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
    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
    function getTelephoneData()
      {
        preg_match('/\+([\d])\(([\d]{3})\)([\d]{3})-([\d]{2})-([\d]{2})/', $this->getTelephone(), $match);
    
        $telephone_data = array();
        if($match)
          $telephone_data = array('code_country' => $match[1],
                                  'code_city' => $match[2],
                                  'number1' => $match[3],
                                  'number2' => $match[4],
                                  'number3' => $match[5]
                                  );
    
        return $telephone_data;
      }
    
      function getFaxData()
      {
        preg_match('/\+([\d])\(([\d]{3})\)([\d]{3})-([\d]{2})-([\d]{2})/', $this->getFax(), $match);
    
        $telephone_data = array();
        if($match)
        {
          $telephone_data = array(
            'code_country' => $match[1],
            'code_city' => $match[2],
            'number1' => $match[3],
            'number2' => $match[4],
            'number3' => $match[5]
          );
        }
    
        return $telephone_data;
      }
    
      function getMobileTelephoneData()
      {
        $telephone_data = array();
        preg_match('/\+([\d])\(([\d]{3})\)([\d]{3})-([\d]{2})-([\d]{2})/', $this->getMobileTelephone(), $match);
    
        if(count($match))
          $telephone_data = array('code_country' => $match[1],
                                  'code_city' => $match[2],
                                  'number1' => $match[3],
                                  'number2' => $match[4],
                                  'number3' => $match[5]
                                  );
    
        return $telephone_data;
      }

    korchasa, 26 Октября 2011

    Комментарии (3)
  6. Pascal / Говнокод #8281

    +146

    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
    program chet;
    uses crt;
    var a,
        b,
        x,
        y:Integer;
    begin
      clrscr;
      Write('Vvedite X=');
      ReadLn(x);
      Write('Vvedite Y=');
      ReadLn(y);
      for a:=0 to 30000 do
        for b:=0 to 30000 do
        begin
          if (a+b=x)and(a*b=y) then
          begin
            Write('a=',a);
            WriteLn('b=',b);
          end;
        end;
      ReadLn;
    end.

    находи все возможные пары A и B!

    ITdocer, 23 Октября 2011

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

    +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
    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
    template <
    	typename PropertyOwner // Класс владельца
    >
    class properties {
    public:
    	// Получить указатель на владельца по указателю на свойство
    	static PropertyOwner * owner( void * property ) { 
    		int aai = (int)&(((PropertyOwner*)0)->__properties);
    		return (PropertyOwner *)((char*)property - aai);
    	}
    };
     
    /**
     * Шаблон класса свойства
     */
    template <
    	typename PropertyOwner, // Класс владельца
    	typename PropertyType, // Тип свойства
    	PropertyType (PropertyOwner::*getter)(), // Геттер
    	void (PropertyOwner::*setter)(PropertyType) > // Сеттер
    class property {
    public:
     
    	/**
    	 * Чтение свойства - вызов геттера
    	 */
    	operator PropertyType() {
    		return (properties<PropertyOwner>::owner( this )->*getter)();
    	}
     
    	/**
    	 * Запись в свойство - вызов сеттера
    	 */
    	void operator = ( const PropertyType & value ) {
    		(properties<PropertyOwner>::owner( this )->*setter)( value );
    	}
    };
     
    // Макросы для удобного определения свойств /////////
     
    /**
     * Начать объявления свойств в классе cls
     */
    #define properties_start(cls) union { properties<cls> __properties;
     
    /**
     * Закончить объявление свойств в классе cls
     */
    #define properties_end() };
     
    /**
     * Объявить свойство в классе cls типа type c геттером getter и сеттером setter
     */
    #define property(cls,type,getter,setter) property<cls,type,&cls::getter,&cls::setter>

    http://www.codenet.ru/progr/cpp/cpp-properties.php

    AnimeGovno-_-, 22 Октября 2011

    Комментарии (3)
  8. 1C / Говнокод #8247

    −154

    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
    case 2: //редактирование таблицы
    			do
    			{
    				for (i = 0; i < size; i++) //вывод таблицы, чтобы видно было, что нужно изменять
    				{
    					for (j = 0; j < 4; j++)
    					{
    						for (k = 0; k < 4; k++)
    						{
    							adres[k] = ((maska << (24 - 8 * k)) & bin_adres[i][j]) >> (24 - 8 * k);
    						}
    						cout << adres [0] << "." << adres [1] << "." << adres [2] << "." << adres [3] << "\t";
    					}
    					cout << endl;
    				}
    				cto ("Наберите необходимый адрес назначения" , s);
    				cout << s << endl;
    				for (j = 0; j < 4; j++)
    				{
    					cin >> adres [j];
    					if (adres[j] < 0 || adres[i] > 255) //проверка каждой введенной цифры на соответствие интервалу
    					{
    						cto ("Вы ввели неверное число. Введите число в диапазонe 0-255" , s);
    						cout << s << endl;
    						j--;
    					}
    					else
    						crv = (adres[0] << 24) + (adres[1] << 16) + (adres[2] << 8) + adres[3]; 
    				}
    				for (i = 0; i < size; i++) //перебор по строкам всего массива
    				{
    					if (crv == bin_adres[i][0]) //сравниваем первый элемент каждой строки, с введенным значением
    					{
    						temp = i; //получаем номер строки, которую необходимо редактировать
    						break;
    					}
    				}
    				cto ("Что необходимо изменить?\n Адрес назначения (нажмите 1)\n Адрес источника (нажмите 2)\n Шлюз(Нажмите 3)\n Маску(нажмите 4)\n", s);
    				cout << s << endl;
    				number = 0;
    				cin >> number; //получаем номер столбца для изменения
    				number--; //для правильного определения индекса элемента в массиве
    				cto ("Введите элемент", s);
    				cout << s << endl;
    				for (i = 0; i < 4; i++)
    				{
    					cin >> adres[i];
    					if (adres[i] < 0 || adres[i] > 255)
    					{
    						cto ("Вы выпали из диапазона 0-255. Введите нормальное число", s);
    						cout << s << endl;
    						i--;
    					}
    				}
    				bin_adres[temp][number] = (adres[0] << 24) + (adres[1] << 16) + (adres[2] << 8) + adres[3]; //записываем данный элемент в заданную строку
    				cto ("Для выхода из редактирования нажмите 1 (продолжить - любая цифра)", s);
    				cout << s << endl;
    				cin >> number;
    			}
    			while (number != 1);
    			system("cls"); //очиста окна командной строки
    			break;

    Команда стажеров писала маршрутизатор на базе 1С предприятия и вот что получилось.

    alexoy, 19 Октября 2011

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

    +141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    %%%sum_middle_by_formula_div_formula###$$$"""" + @if(Ispoln="" & @Text(a3)!="" &
     @Text(CtrlDate)!="";(CtrlDate-a3)/86400;Ispoln="" & @Text(a3)!="" &
     @Text(CtrlDate)="";(@Now-a3)/86400;Ispoln="" & @Text(DateDoc)!="" &
     @Text(CtrlDate)!="";(CtrlDate-DateDoc)/86400;Ispoln="" & @Text(DateDoc)!="" &
     @Text(CtrlDate)="";(@Now-DateDoc)/86400;Ispoln="1" & @Text(a3)!="" &
     @Text(a10)!="";(a10-a3)/86400;Ispoln="1" & @Text(a3)!="" &
     @Text(a10)="";(@Now-a3)/86400;Ispoln="1" & @Text(DateDoc)!="" &
     @Text(a10)!="";(a10-DateDoc)/86400;Ispoln="1" & @Text(DateDoc)!="" &
     @Text(a10)="";(@Now-DateDoc)/86400;(@Now-@Created)/86400) + """"~~~"1"&&&
     %%%resultsbyselectedcolumns###"ИТОГО"$$$@Text(kolvo) + "~~~" + "-" + "~~~" + 
     "-" + "~~~" + "-" + "~~~" + @Text(ispor) + "~~~" + @Text(ispolz) + "~~~" + 
     @Text(vsego) + "~~~" + "-"&&&

    Мало того что Lotus Notes сам по себе говно по сути и содержанию, так вот некоторые умельцы умудряются возвести это говно в степень так, что оно начинает глаза резать...
    ЗЫ. Это шаблон скрипта используемого в модуле отчетов. Там такого тонны...
    ЗЫЗЫ. Если автор этого узнал свое творение, пожалуйста убейся, быстро, решительно, я зае***ся это разгребать.

    d_dev, 11 Октября 2011

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

    −110

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    ...
          IF  i.R_LITHOLOG_1_UPD_173 IS NOT NULL  AND i.R_LITHOLOG_1_INS_69 IS NOT NULL  THEN
           INSERT INTO R_LITHOLOGY( SOURCE,DESCRIPTION,CODE,NAME,ACTIVE_FLAG)
             VALUES(i.SOURCE,i.DESCRIPTION,i.R_LITHOLOG_1_UPD_173,i.CODE,NVL(i.R_LITHOLOG_1_INS_69,'1'));
    ...

    Вдруг i.R_LITHOLOG_1_INS_69 IS NULL ?
    Но почему тогда к i.R_LITHOLOG_1_UPD_173 такое доверие?

    slbsomeone, 11 Октября 2011

    Комментарии (3)
  11. SQL / Говнокод #8155

    −113

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    CURSOR v_cursor IS
      SELECT
       ...
       NVL(DECODE(record_status,'CURRENT',1,0),'1')       r_grain_ro_1_ins_64,
      ...

    Это в продакшн коде.
    Oracle 10.2, PL/SQL

    slbsomeone, 11 Октября 2011

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