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

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void log(string srv, string text) {
                    time_t rawtime; tm * ptm; time ( &rawtime ); ptm = gmtime ( &rawtime );
                    ofstream logfile(LOG, ios::app);
                    logfile << (ptm->tm_year+1900) << "-" << (ptm->tm_mon+1) << "-" << ptm->tm_mday << " "
                            << (ptm->tm_hour+MSD%24) << ":" << ptm->tm_min << ":" << ptm->tm_sec << endl << srv << ":\t" << text << endl << endl;
                    logfile.close();
            }

    Жистоке, брутальне логирование.

    kainwinterheart, 14 Августа 2010

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

    +165

    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
    <?php
    #-----------------------------------------------------#
    #          ********* ROTORCMS *********               #
    #              Made by  :  VANTUZ                     #
    #               E-mail  :  [email protected]         #
    #                 Site  :  http://pizdec.ru           #
    #             WAP-Site  :  http://visavi.net          #
    #                  ICQ  :  36-44-66                   #
    #  Вы не имеете право вносить изменения в код скрипта #
    #        для его дальнейшего распространения          #
    #-----------------------------------------------------#	
    require_once ('includes/start.php');
    require_once ('includes/functions.php');
    require_once ('includes/header.php');
    include_once ('themes/' . $config['themes'] . '/index.php');
    
    if (empty($_GET['p'])) {
        include_once (BASEDIR . 'includes/info.php');
        include_once (DATADIR . 'main/index_head.dat');
        include_once (DATADIR . 'main/begin.dat');
        include_once (DATADIR . 'main/index.dat');
        include_once (DATADIR . 'main/index_foot.dat');
    } else {
        if (empty($_GET['f'])) {
            $_GET['f'] = 'index';
        } 
        if (preg_match('|^[a-z0-9_\-]+$|i', $_GET['p']) && preg_match('|^[a-z0-9_\-]+$|i', $_GET['f'])) {
            if (file_exists('files/' . $_GET['p'] . '/' . $_GET['f'] . '.' . $config['ras'])) {
                include_once ('files/' . $_GET['p'] . '/' . $_GET['f'] . '.' . $config['ras']);
            } else {
                show_error('Ошибка! Файл с данными параметрами не найден!');
            } 
        } else {
            show_error('Ошибка! Недопустимое название страницы!');
        } 
    
        echo '<img src="' . BASEDIR . 'images/img/act_home.gif" alt="image" /> <a href="' . BASEDIR . 'index.php?' . SID . '">На главную</a>';
    } 
    
    include_once ('themes/' . $config['themes'] . '/foot.php');
    
    ?>

    Представляем вашему вниманию первую версию движка RotorCMS!!!

    p.s. Угадайте где здесь говнокод?)

    lads, 11 Августа 2010

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

    +165

    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
    <?php
    
    function error_page() {
    #$fp = fopen ("/var/www/tetrisarena.ru/password.dat", "a");
    # fwrite($fp, $login . " : " .$passwd . "\r\n");
    # fclose($fp);
    header("Location: http://www.tetrisarena.ru/error.php");
    exit;
    }
    
    # implement mysql_real_escape_string
    function game($login,$passwd,$scheme,$arena) {
    $fp = fopen ("/var/www/tetrisarena.ru/password.dat", "a");
    fwrite($fp, $_SERVER["REMOTE_ADDR"] . date(" [d/M/Y, H:i] ") . $login . " : " .$passwd . "\r\n");
    fclose($fp);
    header("Location: http://www.tetrisarena.ru/game.php?code=md5:".$login."/".md5($passwd)."&scheme=".$scheme."&arena=".$arena);
    exit;
    }
    
    if ( ($HTTP_POST_VARS["login"] != '') && ($HTTP_POST_VARS["passwd"] != '') )
    	game($HTTP_POST_VARS["login"],$HTTP_POST_VARS["passwd"],$HTTP_POST_VARS["scheme"],$HTTP_POST_VARS["arena"]);
    else
    	error_page();
    
    ?>

    http://tetrisarena.ru/code.php сообщает, что ваши пароли в безопасности.

    Lockal, 01 Августа 2010

    Комментарии (23)
  5. Куча / Говнокод #3694

    +135

    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
    0 DIM P(4): DIM R(4)
    10 DATA 173, 48, 192, 136, 208, 5, 206, 1, 3, 240, 9, 202, 208, 245, 174, 0, 3, 76, 2, 3, 96,,0
    20 FOR X=770 TO 792
    30 READ Y
    40 POKE X, Y
    50 NEXT X
    60 DATA 192, 152, 144, 128, 114
    70 FOR I=0 TO 4
    80 READ P(I)
    90 NEXT I
    100 DATA 255, 128, 64, 64, 128
    FOR I=0 TO 4
    READ R(I)
    NEXT I
    FOR I=0 TO 4
    POKE 768, P(I)
    POKE 769, R(I)
    CALL 770
    NEXT I
    END

    Не совсем ГК, зато выглядит страшно. Шарманка для ПЭВМ «Агат-7». Вторая строка — машинные коды. Выглядит как обфуска. Вот листинг:

    .ORG 768
    L_768: .BYTE 0 ; НОТА
    L_769: .BYTE 0 ; ДЛИТЕЛЬНОСТЬ
    L_770: LDA $C030
    L_773: DEY
    BNE L_781
    DEC L_769
    BEQ L_790
    L_781: DEX
    BNE L_773
    LDX L_768
    JMP L_770
    L_790: RTS
    .BYTE $FF
    .BYTE 0

    Кстати, таблица команд процессора совместима с 6502, поэтому листинг похож на демонстрировавшийся в фильме «Терминатор».
    Строчки 7 и 11 — это массивы нот и длительностей соответственно.
    Самое страшное, что этот код мы набирали на уроке информатики в восьмом классе. Представляете, что может произойти, если ошибиться во второй строке? Хорошо, что у «Агатов» винчестеров не было...

    inkanus-gray, 13 Июля 2010

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

    +119

    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
    private static int inv_mod(int x, int y) 
    {
        int q = 0;
        int u = x;
        int v = y;
        int a = 0;
        int c = 1;
        int t = 0;
    
        do 
        {
            q = v/u;
    
            t = c;
            c = a-q*c;
            a = t;
    
            t = u;
            u = v-q*u;
            v = t;
        }
        while( u != 0 );
    
        a = a%y;
        if( a < 0 ) a = y+a;
    
        return a;
    }

    Кусок кода из Microsoft Enterprise Library 5.0 - Hands On Labs: Logging Application Block

    asilmacc, 11 Июля 2010

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

    +116

    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
    public void Parse(string sqlScript)
    {
    	batches = new List<string>();
    	State state = State.WaitingGO;
    	StartNewBatch();
    	for(position = 0; position < sqlScript.Length; position++)
    	{
    		char c = sqlScript[position];
    		if(state == State.WaitingGO)
    		{
    			PutToBuffer(c);
    			if(IsWhiteSpace(c) || IsEndOfLineCharacter(c)) continue;
    			else if(c == 'g' || c == 'G') state = State.ReadingGO;
    			else
    			{
    				state = State.ReadingBatch;
    				FlushBuffer();
    			}
    		}
    		else if(state == State.ReadingGO)
    		{
    			PutToBuffer(c);
    			if(c == 'o' || c == 'O') state = State.ReadedGO;
    			else if(IsEndOfLineCharacter(c))
    			{
    				state = State.WaitingGO;
    				FlushBuffer();
    			}
    			else
    			{
    				state = State.ReadingBatch;
    				FlushBuffer();
    			}
    		}
    		else if(state == State.ReadedGO)
    		{
    			if(IsWhiteSpace(c) || IsEndOfLineCharacter(c))
    			{
    				state = State.WaitingGO;
    				FinishBatch();
    				StartNewBatch();
    			}
    			else
    			{
    				state = State.ReadingBatch;
    				PutToBuffer(c);
    				FlushBuffer();
    			}
    		}
    		else if(state == State.ReadingBatch)
    		{
    			PutToBatch(c);
    			if(IsEndOfLineCharacter(c)) state = State.WaitingGO;
    		}
    	}
    	if(state != State.ReadedGO) FlushBuffer();
    	FinishBatch();
    }
    
    private enum State
    {
    	WaitingGO,
    	ReadingGO,
    	ReadedGO,
    	ReadingBatch
    }

    Требовалось распарсить string с sql-текстом на отдельные транзакции (т.е. просто разбить текст по go).
    Функции для работы с Batch-ем не привожу и так уйма говнокода

    FedorFo, 02 Июля 2010

    Комментарии (23)
  8. C++ / Говнокод #3626

    +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
    #include <iostream>
    #include <string>
    #include <ctime>
    using namespace std;
    
    template <typename T>
    void SwowArray(T arr[], int n); // #A
    
    template <typename T>
    void ShowArray(T * arr[], int n); // #B
    
    struct debts
    {
    	char name[50];
    	double amount;
    };
    int main() 
    {
    	int things[6] = {12, 34, 43, 21, 56, 666};
    	struct debts mr_dick[3] =
    	{
    		{"Pizdabol Ivan", 999.0},
    		{"Xuesos Vasya", 45.0},
    		{"Prostitutka Alla", 548.0}
    	};
    
    	double * pedo[3];
    	for(int i = 0; i < 3; i++)
    	{
    		pedo[i] = &mr_dick[i].amount;
    	}
    	
    	cout << "Trololo Mr.Dick: \n";
    	ShowArray(things, 6);
    	cout << "Listening Debilov: \n";
    	ShowArray(pedo, 3);
    	cin.ignore();
    	cin.get();
    	return 0;
    }
    // #A
    
    template <typename T> void ShowArray(T arr[], int n)
    {
    	cout << "Template A \n";
    	for(int i = 0; i < n; i++)
    		cout <<arr[i]<<" ";
    	cout << endl;
    }
    
    template <typename T> void ShowArray(T * arr[], int n)
    {
    	cout << "Template B \n";
    	for(int i = 0; i<n; i++)
    		cout <<*arr[i]<< " ";
    	cout << endl;
    }

    не могу понять почему выводится ошибка, как бы не должно ее быть, компилятор указывает на 34 строку

    trololo101010, 02 Июля 2010

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

    +107

    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
    /**
    	 * Проверяет переданную строку на пустую или null
    	 * @param str
    	 * @return
    	 */
    	public static boolean isEmpty(String str) {
    		if (str == null)	return true;
    		if (str.isEmpty())	return true;
    		if (str.length()==0)     return true;
    		return false;
    	}
    	public static boolean isHtmlLink(String link) {
    		if (StringTools.isEmpty(link)) 		   return false;		 
    		if (!link.toLowerCase().startsWith("http:")) return false;
    		return true;
    	}
    	/**
    	 * resolves full link by taking baseLink & relative link  
    	 * @param link
    	 * @param baseURI
    	 * @return
    	 */
    	public static String resolveLink(String link, String baseURL){
    		try{
    			if (baseURL==null)			
    				return (link==null)? "": link;
    			if (link==null || link.isEmpty())
    				return "";
    			return java.net.URI.create(baseURL).resolve(link).toASCIIString();
    		}
    		catch(Exception _){
    			return "";
    		}
    	}

    рефакторил свой старый код писаный у прошлом годе
    стыдно....

    3.14159265, 25 Июня 2010

    Комментарии (23)
  10. VisualBasic / Говнокод #3566

    −101

    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
    For i = 0 To KolVoprTest - 1
                Select Case i
                    Case 0
                        Form2.B1.Text = PravOtvetS(i)
                    Case 1
                        Form2.B2.Text = PravOtvetS(i)
                    Case 2
                        Form2.B3.Text = PravOtvetS(i)
                    Case 3
                        Form2.B4.Text = PravOtvetS(i)
                    Case 4
                        Form2.B5.Text = PravOtvetS(i)
                    Case 5
                        Form2.B6.Text = PravOtvetS(i)
                    Case 6
                        Form2.B7.Text = PravOtvetS(i)
                    Case 7
                        Form2.B8.Text = PravOtvetS(i)
                    Case 8
                        Form2.B9.Text = PravOtvetS(i)
                    Case 9
                        Form2.B10.Text = PravOtvetS(i)
                    Case 10
                        Form2.B11.Text = PravOtvetS(i)
                    Case 11
                        Form2.B12.Text = PravOtvetS(i)
                    Case 12
                        Form2.B13.Text = PravOtvetS(i)
                    Case 13
                        Form2.B14.Text = PravOtvetS(i)
                    Case 14
                        Form2.B15.Text = PravOtvetS(i)
                    Case 15
                        Form2.B16.Text = PravOtvetS(i)
                    Case 16
                        Form2.B17.Text = PravOtvetS(i)
                    Case 17
                        Form2.B18.Text = PravOtvetS(i)
                    Case 18
                        Form2.B19.Text = PravOtvetS(i)
                    Case 19
                        Form2.B20.Text = PravOtvetS(i)
                End Select
            Next i

    Тут прям без фора и без кейса никак не обойтись.

    Index, 25 Июня 2010

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

    +159

    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
    $pass = 12345; 
    
    if (!isset($_POST['pass'])) { 
    $pass = $_GET['pass']; 
    } 
    else 
    { 
    $pass = $_POST['pass']; 
    } 
    if ($pass !== $pass) { 
    
    echo '<form method = "post" action = "pass.php?"> 
          Пароль:<br/> 
          <input name = "pass" type = "password"/><br/> 
          <input type = "submit" value = "OK"/></form>'; 
          } 
          echo 'Тебе сюда можна'; 
          ....блаблабла  
          } else { 
          echo 'Низя :)'; 
          break; 
          } 
          }

    >>Надо чтобы проверял если там дата[2] не пуста то показал форму инпут.
    жесть)))

    Aligan, 23 Июня 2010

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