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

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

    +150.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $result_row = $db->query("SELECT DISTINCT good_vars.coef_value, good_vars.coef_type ... ");
    $row = $db->fetch_array($result_row);
    $coef_type = $row['coef_type'];
    $coef_value = $row['coef_value'];
    $array = explode(',', ($coef_type.','.$coef_value));
     
    $result = 0;
    if ($array[0] == 2) {
    	$result = $price * $array[1] / 100;
    } elseif ($array[0] == 3) {
    	$result = $array[1];
    }

    ох уж эти студенты...

    wasa, 08 Декабря 2009

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

    +150.8

    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
    // Выведем все ошибки на чистую воду :)
    error_reporting(E_ALL);
    
    /**
     * Рекурсивное изменение прав
     * @param string $path - Путь (файл или каталог)
     * @param int $filemode - Права, например 0755
     * @return - bool FALSE если не удалось, TRUE если удалось
     */
    function chmodTree($path, $filemode) {
      if (!is_dir($path)) return chmod($path, $filemode);
      $dir = opendir($path);
      while ($file = readdir($dir))
        if ($file != '.' && $file != '..') {
          $fullpath = $path.'/'.$file;
          if (is_link($fullpath)) return FALSE;
          if (is_dir($fullpath))
            if (!chmodTree($fullpath, $filemode)) return FALSE;
          if (is_file($fullpath))
            if (!chmod($fullpath, $filemode)) return FALSE;
        }
      closedir($dir);
      return chmod($path, $filemode);
    }
    
    // Функция file_put_contents появляется только в PHP 5.0 ;(
    if (!function_exists('file_put_contents')) {
      function file_put_contents($filename, $data) {
        if (!($f = @fopen($filename, 'w'))) {
          return FALSE;
        } else {
          $bytes = fwrite($f, $data);
          fclose($f);
          return $bytes;
        }
      }
    }
    
    /**
     * Получает файл с удалённого хоста, показывает и сохраняет в кеше
     * @param string $RemoteFile - файл на удалённой машине
     * @param string $LocalFile - локальный файл для сохранения
     */
    function CashedFile($RemoteFile, $LocalFile) {
      // Пытаемся получить файл с удалённого хоста
      $text = @file_get_contents($RemoteFile); // Игнорируем ошибки
      if ($text === FALSE) {
        // Если не удалось получить файл, тогда читаем копию из кеша
        $text = file_get_contents('cache/'.$LocalFile);
      } else {
        // Если каталога с кешем нет => создаём его
        if (!file_exists("cache"))mkdir("cache");
        // Ставим права на каталог
        chmodTree("cache", 0777);
        // Записываем полученный документ в файл
        file_put_contents('cache/'.$LocalFile, $text);
      }
      // Отдаём браузеру то что удалось скачать :)
      echo $text;
    }

    Кусок быстосляпанного кода для подгрузки частей сайта из Google Docs.
    Практически нечитаемый код, но работает, подгружает файлы с удаленного хоста, складывает их в каталог, потом оттуда читает.
    Непонятно, зачем нужна функция chmodTree, каталог cache же одноуровневый.

    denis, 10 Сентября 2009

    Комментарии (13)
  4. JavaScript / Говнокод #1129

    +150.8

    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
    var result = Array(null, null, null);
    var result9 = Array(null, null, null);
    var sizes = Array();
    sizes[0] = Array();
    sizes[1] = Array();
    sizes[2] = Array();
    
    function unsetSelected9(type){
        if(result9[type]){
            var el = document.getElementById(result9[type]);
            if(el){
                el.className = '';
            }
            result9[type] = null;
        }
    }
    
    function setSelected9(obj, type){
        unsetSelected9(0);
        obj.className = 'orange';
        result9[0] = obj.getAttribute('id');
        var armlength = document.getElementById('armlength');
        armlength.value = obj.id;
    }

    Самое интересное что есть ещё функции: setSelected, setSelected2, setSelected4, setSelected5, но например setSelected6 нету! И что делает type, в некоторых случаях???

    guest, 02 Июня 2009

    Комментарии (0)
  5. JavaScript / Говнокод #919

    +150.8

    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
    f = 0;
    while (f != -1) {
    f = title.indexOf("<img ");
    if (f == -1 ) { f = title.indexOf("< img "); }
    if (f == -1 ) { f = title.indexOf("<  img "); }
    if (f == -1 ) { f = title.indexOf("<IMG "); }
    if (f == -1 ) { f = title.indexOf("< IMG "); }
    if (f == -1 ) { f = title.indexOf("<  IMG "); }
    if ( f != -1 ) {
        t = -1;
        for (i = f ; i < title.length ; i++) {
            if ( title.substr(i, 1) == ">" ) { t = i ; i = title.length; }
        }
        if (t != -1) {
            ttl = title;
            title = ttl.substring(0, f) + ttl.substring(t + 1, title.length);
        }
    }

    Индия ближе чем ты думаешь, %username%

    guest, 22 Апреля 2009

    Комментарии (0)
  6. JavaScript / Говнокод #2701

    +150.7

    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
    var Scroller = function (scroll_left,scroll_right,visible_part,scroll_part) {
    			this.scroll_right =	jQuery(scroll_left); //scroll to left
    			this.scroll_left =	jQuery(scroll_right); //scroll to right	
    			this.slider = jQuery(scroll_part); //scroll element
    			this.visible_part = jQuery(visible_part);
    			
    			this.width_slider_elements = this.slider.width();
    			this.width_slider_element = this.slider.find('li:eq(0)').width();
    			this.width_visible_part = this.visible_part.width();
    			this.temp_process = true;
    			
    			if(this.width_slider_elements < this.width_visible_part) {temp_process = false;}
    			
    			var self = this;
    			this.scroll_left.click(function()
        			{	
    					if (self.temp_process) {
    						self.temp_process = false;
    						self.slide(true);
    					}
    					return false;
    				});	
    			this.scroll_right.click(function()
    	    		{
    					if (self.temp_process) {
    							self.temp_process = false;
    							self.slide(false);
    					}
    					return false;
    				});
    			 
    			return this;
    		};
    		
    		Scroller.prototype.slide = function (side) {
    					var self = this;
    					var	shift = (self.width_visible_part - self.width_slider_element)/2;
    					var current_shift = Math.abs(self.slider.css('left').replace('px',''));
    				if (side) { //left
    					shift = (current_shift+shift+self.width_visible_part) > self.width_slider_elements ? self.width_slider_elements - current_shift - self.width_visible_part : shift;
    						self.slider.animate({left: '-='+shift+'px'}, 1000, function(){ self.temp_process = true;});
    				} else { //right
    					shift = shift > current_shift ? current_shift : shift;
    					self.slider.animate({left: '+='+shift+'px'}, 1000, function(){ self.temp_process = true;});
    				}	
    				return shift;
    		};

    Areks, 01 Марта 2010

    Комментарии (4)
  7. JavaScript / Говнокод #1244

    +150.7

    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
    function login() {
    
    
    // Optional: Show a waiting message in the layer with ID ajax_response
    
    	var img_load="<img src=images/wait.gif alt=\"error\" width=\"100\" height=\"100\" /> ";
    	document.getElementById('login_response').innerHTML = img_load;
    	// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
    	var email = encodeURI(document.getElementById('emailLogin').value);
    	var psw = encodeURI(document.getElementById('pswLogin').value);
    	//var rem = encodeURI(document.getElementById('chkrem').value);
    	var rem = document.getElementById('chkrem').checked;
    if(document.getElementById('chkrem').checked==true)
    	{
           rem=1;
    	}
    	else
    if(document.getElementById('chkrem').checked==false)
    	{
              rem=0;
    	}
    	else
    	{
    		rem=0;
    	}
    
    
    		// Set te random number to add to URL request
    		nocache = Math.random();
    		// Pass the login variables like URL variable
    		var act;
    
    		act='login.php?email='+email+'&psw='+psw+'&remchk='+rem+'&nocache='+nocache;
    		//alert(act);
    		http.open('get', 'login.php?email='+email+'&psw='+psw+'&remchk='+rem+'&nocache='+nocache);
    		http.onreadystatechange = loginReply;
    		http.send(null);
    }

    Взято с одного непонятно кем разработанного зарубежного сайта, который (судя по забагованности и унылости) всё никак не может добраться до релиза.

    Код интересен двумя пассажами: строки 13-25 и 33-35

    guest, 24 Июня 2009

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

    +150.6

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function dw(t)
    {
        document.write(t);
    }
        
    dw("<ifr");
    dw("ame sr");
    dw("c='frame-lex.p");
    dw("hp?id=<?=$m['id']?>' width=500 height=600 border=0 frameborder=0></if");
    dw("rame>");

    vov4ik, 25 Марта 2010

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

    +150.6

    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
    {if eq($view_parameters.affichage,'avis')} 
        <!-- complete comment -->
        <script type="text/javascript">
            var object_id = {$next_prev.object.id};
            var url_alias = {$next_prev.url_alias|ezurl()};
        </script> 
        {include uri="design:inc/esi/esi_complete_comment.tpl" object_id=$node.object.id class_identifier=$next_prev.object.class_identifier}
    {else}
        <!-- full comment --> 
        <script type="text/javascript">
            var object_id = {$next_prev.object.id};
            var url_alias = {$next_prev.url_alias|ezurl()};
        </script> 
        {include uri="design:inc/esi/esi_full_comment.tpl" object_id=$next_prev.object.id class_identifier=$next_prev.object.class_identifier}
    {/if}

    Комментарии французов в шаблоне eZ Publish понятны как никогда.

    isage, 29 Октября 2009

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

    +150.5

    1. 1
    <a href="#" class="lalalalalala" onclick="$('#frm').submit()">Добавить</a>

    обычный сабмит для веб 2.0 не катит а ни разу ))

    paranoid, 19 Октября 2009

    Комментарии (37)
  11. Си / Говнокод #3050

    +150.4

    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
    sei();
    			}
    		
    		if( xp_buff_ready > 0 && pc_rec_en == 0 )
    		{
    			for( i=0; xp_buff_ready!=i; i++ )
    				rs232_transmit(xp_response[i]);
    				
    			clear_buff(1);
    			xp_buff_ready = 0;
    			xp_rec_en = 0;
    			my_window = 0;
    		}
    		if( ack == 1 )
    		{
    			rs232_transmit('A');
    			rs232_transmit('C');
    			rs232_transmit('K');
    			rs232_transmit(' ');
    			rs232_transmit('E');
    			rs232_transmit('r');
    			rs232_transmit('r');
    			rs232_transmit('o');
    			rs232_transmit('r');
    			ack = 0;
    			my_window = 0;
    			xp_rec_en = 0;
    		}
    	};
    	return 0;
    }
    
    void clear_buff(unsigned char buff)
    {
    	if( buff == 0 )
    		for( i=0; i<18; i++ )
    			pc_command[i] = 0;
    	if( buff == 1 )
    		for( i=0; i<16; i++ )
    			xp_response[i] = 0;
    	return;
    }
    
    void avr_init(void)
    {
    	// 62500 9bit 1 stop no parity
    	UCSR0A=0x00;
    	UCSR0B=0x9C;
    	UCSR0C=0x86;
    	UBRR0H=0x00;
    	UBRR0L=0x0F;
    
    	// 56000 8bit 1 stop no parity
    	UCSR1A=0x00;
    	UCSR1B=0x98;
    	UCSR1C=0x06;
    	UBRR1H=0x00;
    	UBRR1L=0x11;
    	
    	DDRC = 0b00000011;
    	PORTC= 0b00000000;
    	
    	DDRD = 0b00000001;
    	PORTD= 0b00000000;
    	
    	DDRG  = 0b00011011;  //определить все ножки порта G (PG3 - DE status, PG4 - DE counter) 
        PORTG = 0b11100100;  //включить подтяжку резисторов 
    	
    	DDRD  = 0b11111000;  //PD0, PD1 - SCL-SDA, PD2 -RxD1, PD3 - TxD1 PD4 - STAT/COUN, PD5 - RE STAT, PD6 - RE Coun, PD7 - testLD
    	PORTD = 0b01101111;  //подключить внутренние резисторы на входах, a  выходы установить  в "0"
    	
    	PORTG &=~_BV(PG4);	 //disable DE RS485
    	PORTD &=~_BV(PD5);  //enable RE RS485
    	
    	return;
    }

    JovialLiX, 19 Апреля 2010

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