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

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

    +157

    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
    // (c) Template Optimizer
    // (c) Template Compiler
    // skin/news.tpl
    
    /*<?php
    die ('<br /><br />Template Parser: <b>Access locked</b>');
    ?>*/
    
    $value0 = '
    
    ';
    if ( $this->get_tpl_tag ('USER.ACCESS') == '1' )
    {
    	$value0 .= '
    	';
    	$this->set_tpl_tag ('ACTION', 'new_add');
    	$value0 .= '
    	';
    	$this->set_tpl_tag ('SUBMIT', 'Добавить');
    	$value0 .= '
    	';
    	$this->set_tpl_tag ('CAPTION', 'Добавить новость');
    	$value0 .= '
    	' . $this->file_include ('content.tpl') . '
    ';
    }
    $value0 .= '
    
    ';
    $this->open_local (array ('NEW'));
    if ( is_array ($this->get_tpl_tag ('NEWS')) )
    foreach ( $this->get_tpl_tag ('NEWS') as $this->tags['NEW'] )
    {
    	$value0 .= '
    	<table class="news" width="100%">
    		<tr>
    			<th>
    				<h2>' . $this->get_tpl_tag ('NEW.TITLE') . '</h2>
    			</th>
    			<th align="right">
    				<span class="gensmall">' . $this->get_tpl_tag ('NEW.TIME') . ' </span>
    				';
    	if ( $this->get_tpl_tag ('USER.ACCESS') == '1' )
    	{
    		$value0 .= '
    					<a href="admin.php?action=new_edit&new=' . $this->get_tpl_tag ('NEW.ID') . '"><img src="' . $this->root_dir . '/images/rename.gif" alt="Редактировать" title="Редактировать" style="vertical-align: middle; border: none;" /></a>
    					<a href="admin.php?action=new_delete&new=' . $this->get_tpl_tag ('NEW.ID') . '" onclick="return confirm (\'Удалить новость за ' . $this->get_tpl_tag ('NEW.TIME') . '?\');"><img src="' . $this->root_dir . '/images/delete.gif" alt="Удалить" title="Удалить" style="vertical-align: middle; border: none;" />
    				';
    	}
    	$value0 .= '
    			</th>
    		</tr>
    		<tr>
    			<td colspan="2">
    				' . $this->get_tpl_tag ('NEW.BODY') . '
    			</td>
    		</tr>
    	</table>
    ';
    }
    $this->close_local();
    $value0 .= '
    
    ';
    $this->set_tpl_tag ('_ALIGN_', 'LEFT');
    $value0 .= '
    ' . $this->file_include ('pagebar.tpl');

    Вот такой "говнокод" выдает мой шаблонизатор после компилирования шаблона.
    В данном примере это блок новостей.

    Arigato, 11 Октября 2010

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

    +157

    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
    # Количество эл. массива
    $count = count($arr);
    
    echo "<p class='code'>( ";
    
    # Разбиваем массив на ключи и значения
    foreach ($arr as $key=>$value) {     
    
    echo $value;
    
    # Проверяем если это последний эл. массива
    if(!next($arr)){
    echo " ) / ".$count;
    # Считаем среднее арифметическое
    $average = array_sum($arr)/$count;
    echo " = ".$average."</p><p class='info'>Сурженко Дмитро<br>402 група</p>";
    # Выход
    exit();
    }
    
    echo " + ";
    
    }

    Uchkuma, 11 Октября 2010

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

    +157

    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
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    function getFields () {
      global $requiredFields;
      global $alert;
      $formfields = "";
    
      foreach ($requiredFields as $name) {    
        if (isset($_SESSION[$name])) {
        // do nothing
        } elseif (isset($_POST[$name])) {
          if(verifyField($name)) {
            $_SESSION[$name] = $_POST[$name];
          } else {
            // display field again
            $formfields .= createField($name);
          }
        } else {
          // request field from user
          $formfields .= createField($name);
        }
      }
      return $formfields;
    }
    function getSessionValue($name) {
      if (isset($_SESSION[$name])) {
        return $_SESSION[$name];
      }  
      return NULL;
    }
    function getPostValue($name) {
      if (isset($_POST[$name])) {
        return $_POST[$name];
      }
      return NULL;
    }
    ...
     if (isset($labels[$name])) {
        return $labels[$name];
      } else {
        return $name;
      }
    }
    ....
    function createField($name) {
      if (isset($_POST[$name])) {
        $value = $_POST[$name];
      } else {
        $value = '';
      }
      $output = '';
      $label = getFieldLabel($name);
      switch ($name) {
        case 'firstname':
        case 'lastname':
        case 'name':
        case 'email':
        case 'confirm_email':
        case 'address':
        case 'expenses':
        case 'employer':
        case 'occupation':
        case 'MonthlyPayment':
        case 'nombre':
        case 'apellido':
        case 'correo':
          $output = "$label:<br/>
    			<input type=\"text\" name=\"$name\" value=\"$value\"/><br/>";
          break;
        case 'gender' :
          $output = $label . ':<br />
    	<select name="gender">
    	<option value="">-Select-</option>
    	<option value="m">Male</option>
    	<option value="f">Female</option>
    	</select><br />';
          break;
        case 'dob_month':
          $output = <<<EOT
    		$label:<br/>
    		<input type="text" name="$name" size="2" maxlength="2" value="$value" style="-wap-input-format: *N"/><br/>
    EOT;
          break;
        case 'dob_year':
          $output = <<<EOT
    		$label:<br/>
    		19<input type="text" name="$name" size="2" maxlength="2" value="$value" style="-wap-input-format: *N"/><br/>
    EOT;
          break;
        case 'dob_day':
          $output = <<<EOT
    		$label:<br/>
    		<input type="text" name="$name" size="2" maxlength="2" value="$value" style="-wap-input-format: *N"/><br/>
    EOT;
    ... 
      error_log($message);
          global $alert;
          $alert .= $message . '<br/>';
          break;
      }  return $output;
    }

    кусок из чудо "фреймворка" кем-то написанным. файл forms.php ."формирует" html поля для формы. такое там везде.

    belial_y, 08 Октября 2010

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    if ( условие )                                                                                                                                                                                                                                                                                                                                             ;                 
    {
     //что-либо сделать
    };

    //"счастливой отладки" v.2.0
    отгреб в собственном-же коде)))))

    Denjs, 08 Октября 2010

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    $__=array('!','й','у','х',' ','е','б','е','т',' ','о','т','э',' ',',','т','е','Н');
    $_=array_reverse($__);
    $__=array_slice($_, 0, count($__)-1);
    echo implode($__);

    От автора инновационного вики-движка.
    Оригинальный посыл на PHP.
    Два массива, многозначительная третья строка.
    И все это ради задачи вывести на экран посыл на три буквы, если каждый элемент массива - буква и нулевой элемент - конец фразы.

    7ion, 08 Сентября 2010

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

    +157

    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
    //               
                       // <?php if (!Yii::app()->user->checkAccess('partner')) { ?>
    
                            a+='<td'+cl+'>'+msg['keywords'][i][mord] + '</td>';
    
                       // <?php } ?>
    
                            //'</strong></td><td'+cl+'>'+currentMordCost+
                            a+='<td'+cl+'>'+(msg['keywords'][i]['costM'])
                            +'</td>'+
                            '<td'+cl+'>'+$.getTiming(msg['domainTrust'], msg['keywords'][i][mord]) + '</td>' +
                            '<td'+cl+'><img class="info" src=\"/images/information.png\" alt=\"'+i+'\" id=\"'+i+'\" > <B>' +msg['keywords'][i]['notice']+'</B></td></tr>';
                            msg['keywords'][i]['domainTrust'] = msg['domainTrust'];
                            hints[i]=jQuery.getHint(msg['keywords'][i]);
                            if (msg['keywords'][i]['bad']==true)
                                badCount++;
                            //mordNestedCost = mord/2 / msg['keywords'][i]['nested'].length;
    
                            //costMNested=(msg['keywords'][i]['costM']) / 2 / msg['keywords'][i]['nested'].length;
                            //if (halfMord == "-")
                            //	mordNestedCost = costMNested = "-";
                                mod='';modA='';
                            for (k=0;k<msg['keywords'][i]['nested'].length;k++)
                            {
    
                                if (k==parseInt(msg['keywords'][i]['up']))
                                    {
                                        mod  = '<span style="color:#626262;font-weight:bold;">';
                                        modA = '<\/span>';
                                    }
                                    if (msg['keywords'][i]['nested'][k]['freq'] <= 50 && msg['keywords'][i]['nested'][k]['mordCost'] >= 1)
                                            {
                                    msg['keywords'][i]['nested'][k]['notice'] += " <BR><span style='color:red'>Возможно посчитано неверно!</span>";
                                    hasCriticalErrors = true;
                                            }
                                a+= '<tr><td'+cl+'>' + mod + '    '+(msg['keywords'][i]['nested'][k]['title'])+ modA +
                                '</td>';
    
                            // // <?php if (!Yii::app()->user->checkAccess('partner')) { ?>
    
                                a+='<td'+cl+'>'+(msg['keywords'][i]['nested'][k][mord])+'</td>';
    
                            // <?php } ?>
    
                                a+='<td'+cl+'>'+
                                //'</td><td'+cl+'>'+currentNestedMordCost+'</td><td'+cl+'>'+
                                (msg['keywords'][i]['nested'][k]['costM'])+'</td>'+
                                    '<td'+cl+'>'+$.getTiming(msg['domainTrust'], msg['keywords'][i]['nested'][k][mord]) + '</td>' +
                                    '<td'+cl+'>'+'<img class="info" src=\"/images/information.png\" alt=\"info_'+i+'_'+k+'\" id=\"'+i+'_'+k+'\" >'+' <B>'+msg['keywords'][i]['nested'][k]['notice']+'</B></td></tr>';
                                msg['keywords'][i]['nested'][k]['domainTrust'] = msg['domainTrust'];
                                hints[i+'_'+k]=jQuery.getHint(msg['keywords'][i]['nested'][k]);
                                if (msg['keywords'][i]['nested']['bad'] == true)
                                    badCount++;
    
    
    
    
                            }

    Как вам такая каша из яваскрипта, пхп и хтмл?

    user654321, 31 Августа 2010

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $segs = $this->uri->segment_array();
    
    foreach ($segs as $k=>$segment)
    {
        if($k==1) continue;
        $i_segment = (int)$segment;
        if((string)$i_segment!==$segment) $url .= '/'.$segment;
    }

    Наговнокодил разбор ЮРЛ с учетом того что ХЗ сколько может быть сегментов и последние сегменты - может быть их два (всего на странице, старт с страницы), первый сегмент - имя модуля

    scanterkk, 27 Августа 2010

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

    +157

    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
    86. 86
    /**
     * Получить список NEW5
     * 
     * @return array список событий
     */
    public function getLastForBlockNew($cat_tc_id = NULL)
    {
    
        $max_name_len = 41;
    
        $sql = "SELECT
                    a.d_id,
                    CONCAT(a.d_sname, ' ', a.d_name, ' ', a.d_fname) as d_name,
                    SUBSTR(a.d_description, 0, 30) as d_description,
                    a.d_rating,
                    c.c_name_url,
                    b.rg_name_url,
                    '".Application_Url_Maker::makeUrl(array(), 'sub-domain1')."' as domain
                FROM customers a
                    LEFT JOIN cities c ON c.c_id=a.d_c_id
                    LEFT JOIN regions b ON b.rg_id=c.c_rg_id
                WHERE a.d_rating is not NULL
                ORDER BY RAND()
                LIMIT 5
        ";
        $query[-1] = $this->querycached($sql);
    
        $sql = "SELECT
                    a.h_id,
                    a.h_name_ru,
                    SUBSTR(a.h_description, 0, 30) as h_description,
                    a.h_rating,
                    c.c_name_url,
                    b.rg_name_url,
                    '".Application_Url_Maker::makeUrl(array(), 'sub-domain2')."' as domain,
                    h_lat,
                    h_lon,
                    h_address,
                    h_phones,
                    d.hs_name_url
                FROM hospitals a
                    LEFT JOIN cities c ON c.c_id=a.h_c_id
                    LEFT JOIN regions b ON b.rg_id=c.c_rg_id
                    LEFT JOIN item_specializations d ON d.hs_id=a.h_hs_id
                WHERE a.h_rating is not NULL
                ORDER BY RAND()
                LIMIT 5
        ";
        $query[1] = $this->querycached($sql);
    
        $tc_ids = $this->db->fetchAll("select tc_id, tc_name_subdomain from type_catalogs where tc_id<>1");
        foreach($tc_ids as $v){
            $sql = "SELECT
                        a.cat_id,
                        a.cat_name_ru,
                        SUBSTR(a.cat_description, 0, 30) as cat_description,
                        a.cat_rating,
                        c.c_name_url,
                        b.rg_name_url,
                        '".Application_Url_Maker::makeUrl(array(), $v['tc_name_subdomain'])."' as domain,
                        cat_lat,
                        cat_lon,
                        cat_address,
                        cat_phones
            FROM catalogs a
                LEFT JOIN cities c ON c.c_id=a.cat_c_id
                LEFT JOIN regions b ON b.rg_id=c.c_rg_id
            WHERE a.cat_tc_id=? and a.cat_rating is not NULL
            ORDER BY RAND()
            LIMIT 5
            ";
            $query[$v['tc_id']] = $this->querycached($sql, array($v['tc_id']));
        }
    
        foreach($query as $k=>$v){
            foreach($v as $k1=>$v1){
                if(isset($v1['cat_name_ru']) && mb_strlen($v1['cat_name_ru']) > $max_name_len){
                    $query[$k][$k1]['cat_name_ru'] = mb_substr($v1['cat_name_ru'], 0, $max_name_len).'...';
                }
                elseif(isset($v1['h_name_ru']) && mb_strlen($v1['h_name_ru']) > $max_name_len){
                    $query[$k][$k1]['h_name_ru'] = mb_substr($v1['h_name_ru'], 0, $max_name_len).'...';
                }
            }
        }
        return $query;
    }

    nergal, 26 Августа 2010

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

    +157

    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
    Часть 1
    =====================================
    foreach ($_POST['massive'] as $key => $val)
    {
    @mysql_query("INSERT INTO table VALUES (NULL,'".$val."'");
    } 	
    ======================================
    Часть 2
    ======================================
    if (!empty($_POST['massive'])/*&&is_array($_POST['massive']) для любителей пожестче=)*/)
    {
    //Так мы точно знаем что нам что-то передали(не выскочит нотис).
    //Далее надо сформировать правильный запрос. Никогда, НИКОГДА нельзя делать кучу инсертов циклом, т.к. скорее всего это закончиться смертью сервера.
    //А сделать как-нить так
    
    foreach ($_POST['massive'] as $key => $val)
    {
     $query.="('".mysql_real_escape_string($val)."'),"; //Cделаем заготовку для запроса, попутно параметр экранируется, что бы злобные хакеры не подсунули нам кавычку и прочую гадость.
    }
    $query= 'INSERT INTO table VALUES'.substr($query, 0, -1).';';//Обрежем последнюю лишнюю запятую, и в итоге получим запрос вида INSERT INTO table VALUES (),(),()..();
    if (!mysql_query($query)) //Скажу по секрету, что ставить собаку это моветон.
    {
     print "Упс, что-то сломалось";
     print mysql_error();
    }else {print "Вот и все"}
    ==========================================

    Вобщем, увидел на одном форуме часть 1.
    Будучи в хорошем настроении решил поправить. И Выдал часть 2, прямо вот в форуме. Думал отправить.. Но попахивает же, да?

    vitaly, 23 Августа 2010

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

    +157

    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
    $q = mysql_query("... /* тут мог быть ваш код */") or die(mysql_error());
          $nr = mysql_num_rows($q);
          $contor=0;
          if($nr<1) {
            echo "No notes found";
            $contor=0;
          } else {
            $contor=1;
            $cc = 0;
            while($d = mysql_fetch_assoc($q)) {
              ... /* тут мог быть ваш код */
              $cc++;
              $contor++;
            }
            if (!$contor) $contor = 0;
          }
          if (!$contor) $contor = 0;

    для уверенности.

    n0ne, 15 Августа 2010

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