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

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

    +146

    1. 1
    ... document.write('<img src="' + src + '" alt="" width="1" height="1" style="display:none"/>');

    microsoft.com, 24 строчка

    necropedophag, 14 Января 2012

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

    −83

    1. 1
    ((UIButton*)[[mCellsArray objectAtIndex:indexPath.row]viewWithTag:kSpeakGalleryCellButtonTag]).selected = !((UIButton*)[[mCellsArray objectAtIndex:indexPath.row]viewWithTag:kSpeakGalleryCellButtonTag]).selected;

    Встречается в проекте раз пять такая конструкция

    Werdn, 14 Января 2012

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

    +164

    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
    function recoveryPassword( $data )
    {
    	$value = implode( '', $data );
    	$key = implode( '', array_keys( $data ) );
    
    	$query = '
    		SELECT
    			u.user_id AS `id`,
    			u.login,
    			u.salt,
    			u.mail,
    			u.status
    		FROM
    			users AS `u`
    		WHERE
    			u.'.$key.' = "'.$value.'"
    		LIMIT 1;';
    
    	if( !list($result) = $this->db->get($query) )
    	{
    		...
    }

    Копаясь в старом студийном коде наткнулся. Видимо, предполагалось, что в качестве $data будет передан массив вида array( 'field' => 'value' ) c 1 элементом.

    faiwer, 11 Января 2012

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

    +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
    ///////////////////////////////////////////////
    ////////////
    //Содержимое
    
    function One($str,$tag,$num=1,$p=1){
    
    if($num=='0'){ $num='1'; }
    
    //Разделитель <тег
    $see_st=explode('<'.$tag,$str);
    
    if($p!==1){ $see_st=explode($p,$str); 
    
    $end=explode('>',$see_st[$num]); 
    $see_st[$num]='.'.$end[1];
    }
    
    //Разделитель </тег
    $see_end=explode('</'.$tag,substr($see_st[$num],'1'));
    
    return $see_end[0];
    }
    ///////////////////////////////////////////////
    /////////
    //Парсинг
    
    function Parse($go,$str=0){
    if($str==0){ $str=$this->String; }
    
    //Разбили путь
    $path=explode("/",$go);
    
    //Обрабатываем путь
    for($go_n=0;$go_n<count($path);$go_n++){
    //$go_n='2';
    
    //Номер тега
    $num=explode(':',$path[$go_n]);
    if($num[1]==NULL){ $num[1]=1; }
    
    if($go_n=='0'){ $string=$str;}else{ $string=$t[$go_n-1]; } 
    $t[$go_n]=$this->One($string,$num[0],$num[1]);
    }
    
    return $t[$go_n-1];
    }

    Тоже самое, но теперь с xmlD:

    finall2, 08 Января 2012

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

    +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
    function tegs($str){
        if(!empty($str)){
        $tegs = explode(',', $str);
        $all_tegs = count($tegs);
        $str_Tegs = '<a href="/tegs.php?search='.$tegs['0'].'">'.$tegs['0'].'</a>';
        for($i = 1; $i<=$all_tegs-1; $i++){
            $str_Tegs .= ', <a href="/tegs.php?search='.$tegs[$i].'">'.$tegs[$i].'</a>';        
        }
        $str = $str_Tegs;
        } else {
            $str = 'Меток нет.';
        }
     return $str;
    }

    Правильный вывод меток

    Skitch, 07 Января 2012

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

    −138

    1. 1
    вайп

    TarasGovno, 04 Января 2012

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

    +163

    1. 1
    $('.eTag').attr('href',$('.eTag').attr('href').replace('/search/','/searchq?='));

    http://usite.su/forum/3-1806-18538-16-1324092570

    substr, 17 Декабря 2011

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $x = '1234';
    $pos = strlen($x);
    echo substr($x,$pos,1);
    // или так
    $x = '1234';
    $y = strlen($x);
    $num = $x[$y-1]; 
    echo $num

    Оба варианта предложил один автор

    Sulik78, 16 Декабря 2011

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

    +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
    <?
    	function lang($lang) {
    
    		$languages = array('ru', 'en', 'lv');
    	
    		foreach($languages as $lang_arr) {
    	                // Проверка, есть ли такой язык в массиве
    			if($lang == $lang_arr) {
    				// Меняем язык
    			}
    		}
    
    	}
    ?>

    in_array(); ?

    Не, не слышал... ;)

    killro0000, 15 Декабря 2011

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

    +142

    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
    <?php
    // страницы, содержимое которых надо получить
    $urls = array('www.yandex.ru', 'www.google.ru', 'www.mail.ru', 'www.rambler.ru');
     
    $rtasks = array(); // задачи чтения
    $wtasks = array(); // задачи записи
    $results = array(); // результаты
     
    foreach ($urls as $url) {
    	// открываем отдельный сокет
    	$sh = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    	if (!$sh) continue;
     
    	// таймаут для чтения
    	socket_set_option($sh, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 10, "usec" => 0));
    	// таймаут для записи
    	socket_set_option($sh, SOL_SOCKET, SO_SNDTIMEO, array("sec" => 10, "usec" => 0));
    	// задаем неблокирующий режим сокетов
    	socket_set_nonblock($sh);
    	// определяем ip хоста
    	$ip = gethostbyname($url);
    	// соединяемся
    	socket_connect($sh, $ip, 80);
     
    	// добавляем в задачи для записи
    	$wtasks[$url] = $sh;
    }
     
    // продолжаем, пока есть задачи для записи или чтения
    while ($wtasks || $rtasks) {
    	// массив для сокетов с возможностью чтения
    	$rtasks_ = $rtasks;
    	// массив для сокетов с возможностью записи
    	$wtasks_ = $wtasks;
     
    	// ждем результатов из сокетов
    	$n = socket_select($rtasks_, $wtasks_, $e=null, 10);
    	if ($n > 0) {
    		// сокеты, доступные для записи
    		foreach ($wtasks_ as $sh) {
    			// ищем урл страницы по дескриптору сокета в массиве задач записи
    			$url = array_search($sh, $wtasks);
    			// удаляем из задач записи
    			unset($wtasks[$url]);
    			// добавляем в задачи чтения
    			$rtasks[$url] = $sh;
    			// формируем http-заголовки
    			$headers  = "GET / HTTP/1.0\r\n";
    			$headers .= "Host: ".$url."\r\n";
    			$headers .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 MRA 5.3 (build 02557) Firefox/3.0.6\r\n";
    			$headers .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
    			$headers .= "Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
    			$headers .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
    			$headers .= "\r\n";
     
    			// записываем в сокет
    			if (socket_write($sh, $headers) === false) fclose($sh);
    		}
     
    		// сокеты, доступные для чтения
    		foreach ($rtasks_ as $sh) {
    			// ищем урл страницы по дескриптору сокета в массиве задач чтения
    			$url = array_search($sh, $rtasks);
    			if (!$url) continue;
    			// считываем результат из сокета
    			$result = '';
    			while ($r = socket_read($sh, 1024)) $result .= $r;
    			// закрываем сокет
    			socket_close($sh);
    			// удаляем из задач чтения
    			unset($rtasks[$url]);
    			// заносим html в массив результатов
    			$results[$url] = $result;
    		}
    	}
    	else {
    		break;
    	}
    }
    ?>

    a_e, 15 Декабря 2011

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