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

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

    +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
    <?php
    $result=mysql_query($query);
    while($r=mysql_fetch_array($result))
    {
    
    echo "$r[groupe]<br/>";
    
    $gr1_c1=$r[0]['groupe'];
    $gr2_c1=$r[1]['groupe'];
    $gr3_c1=$r[2]['groupe'];
    $gr4_c1=$r[3]['groupe'];
    $gr5_c1=$r[4]['groupe'];
    $gr6_c1=$r[5]['groupe'];
    $gr7_c1=$r[6]['groupe'];
    
    ?>
    
    
    <table width="1027" cellspacing="0" cellpadding="0" border="1" align="center" valign="center">
    <tr>
    <td width="85"><div align="center"><? echo $gr1_c1 ?> </div></td>
    <td width="85"><div align="center"><? echo $gr2_c1 ?> </div></td>
    <td width="85"><div align="center"><? echo $gr3_c1 ?></div></td>
    <td width="85"><div align="center"><? echo $gr4_c1 ?></div></td>
    <td width="85"><div align="center"><? echo $gr5_c1 ?></div></td>
    <td width="85"><div align="center"><? echo $gr6_c1 ?></div></td>
    <td width="85"><div align="center"><? echo $gr7_c1 ?></div></td>
    </tr>
    </table>

    qbasic, 23 Февраля 2011

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

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <?php
    $countH =1;
    $T = 0;
    foreach ($aSelectedUnits as $v) {
      if ($T != $v['UnitType']) {
        $countH = 1;
      }
      $countHired[$v['UnitNameId']] = $countH ++; // calculate hired units by type
      $T = $v['UnitNameId'];
    }
    ?>

    всего навсего нужно было подсчитать количество юнитов каждого типа.
    Как ни странно этот кусок кода считает юнытов, но не всегда верно.

    Sergunik, 22 Февраля 2011

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

    +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
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    <?php
    //дата и время.
    $date1 = date('d.m.Y');
    $date2 = date('H:i:s');
    //$i - счётчик пользователей, $cnt - то, что будем выводить (в завершении)
    //$uall - Ссылки на пользователей онлайн
    $i = 0;
    $cnt = NULL;
    $uall = NULL;
    $db->query = "SELECT id, nick, timeof, online FROM ".$GLOBALS['pref']."users";
    $qonl = $db->query();
    $cnt .= "Всего участников ";
    
    while ($usronl = $db->farray($qonl)) {
    if ($usronl['online'] == TRUE) {
    $ar = explode("|:|", $usronl['timeof']);
    
    //Если сегодняшняя дата
    if ($ar[0] === $date1) {
    
    $est = explode(":", $ar[1]);
    $tm = explode(":", $date2);
    $m4 = $est[0] - $tm[0];
    $m5 = $tm[1] - $est[1];
    $m6 = "$m5";
    if (($est[0] === $tm[0]) && (($m5 <= 15))) {
    if ($i > 0) { $p = ","; } else { $p = NULL; }
    if ($i == 1) { $s = ","; } else { $s = NULL; }
    $i++;
    $uall .= $s."<a href=\"http://".$GLOBALS['url']."/users/
    profile/".$usronl['id']."/\" title=\"Посмотреть профиль\">".$usronl['nick']."<
    /a>".$p." ";
    
     } elseif (($m4 == -1) && ($m6{0} === "-" && $m5 <= -45)) {
    if ($i > 0) { $p = ","; } else { $p = NULL; }
    if ($i == 1) { $s = ","; } else { $s = NULL; }
    $i++;
    $uall .= $s."<a href=\"http://".$GLOBALS['url']."/users/
    profile/".$usronl['id']."/\" title=\"Посмотреть профиль\">".$usronl['nick']."<
    /a>".$p." ";
     }
      }
       } 
    	} //end while
    if ($i == 0) {
    $uall .= "никого";
    } else {
    
    $co = strlen($uall);
    $uall = substr($uall, 0, $co - 7);
    $uall .= ".";
    }
    $cnt .= "(".$i."):<BR>".$uall;
    
    ?>

    Писал вывод онлайн посетителей на сайте в 2009 году.

    Furry, 21 Февраля 2011

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

    +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
    48. 48
    49. 49
    <?php
    $_REQUEST['start'] = ($_REQUEST['start'] != '') ? $_REQUEST['start'] : 0;
    $_REQUEST['limit'] = ($_REQUEST['limit'] != '') ? $_REQUEST['limit'] : 19;
     
     
        $obj = new BASE();
     
        $obj_online     = new ONLINE();
        $obj_files      = new FILES();
        $obj_disk       = new DISK();
        $obj_group_disk = new GROUP_DISK();
        $obj_status_disk= new STATUS_DISK();
        $obj_type_disk  = new TYPE_DISK();
        $obj_type_file  = new TYPE_FILE();
        $obj_friends    = new FRIENDS();
        $obj_history    = new HISTORY();
        $obj_parsed     = new PARSED();
     
        if (isset($_REQUEST['action'])) {
                switch ($_REQUEST['query']) {
                    case 'select':{
                        switch ($_REQUEST['action']) {
                            case 'files':{
                                echo json_encode($obj_files->select($_REQUEST));
                            }break;
                            case 'disk':{
                                echo json_encode($obj_disk->select($_REQUEST));
                            }break;
                            case 'group_disk':{
                                echo json_encode($obj_group_disk->select($_REQUEST));
                            }break;
                            case 'status_disk':{
                                echo json_encode($obj_status_disk->select($_REQUEST));
                            }break;
                            case 'type_disk':{
                                echo json_encode($obj_type_disk->select($_REQUEST));
                            }break;
                            case 'type_file':{
                                echo json_encode($obj_type_file->select($_REQUEST));
                            }break;
                            case 'friends':{
                                echo json_encode($obj_friends->select($_REQUEST));
                            }break;
                            case 'history':{
                                echo json_encode($obj_history->select($_REQUEST));
                            }break;
                        }
                    } break;
    ...

    qbasic, 13 Февраля 2011

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

    +160

    1. 1
    2. 2
    3. 3
    if (RENAME_FILE) {
          $dest_filename = md5(uniqid(rand(), true)) . '.' . $file_ext;
        }

    Рандом, рандом, еще рандом!

    7ion, 12 Февраля 2011

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

    +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
    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
    <?php
    
    class UserSessionComponent extends Component {
    	//...
    	protected function loginByUserId($user_id, $is_autologin = false) {
    		$list = $this->_loadComponents($this->components, array('UserAuth'));
    		$userAuth = $list['UserAuth'];
    		$userAuth->startup($this->controller); # !!! WORKFLOW VIOLATION !!!
    		$method = $is_autologin ? 'autologin' : 'login';
    		if ($userAuth->$method($user_id)) {
    			return $this->controller->Session->read('User.data');
    		}
    	}
    	//...
    }
    
    class UserAuthComponent extends BaseMagicComponent {
    	protected $loginType = 'explicit';
    
    	//...
    
    	public function autologin($params = array()) {
    		$this->loginType = 'implicit';
    		return $this->_login($params);
    	}
    
    	public function login($params = array()) {
    		$this->loginType = 'explicit';
    		return $this->_login($params);
    	}
    
    	//...
    	protected function _login($params = array()) {
    		switch (true) {
    			case (is_array($params) && isset($params['user']) && isset($params['password'])):
    				$result = $this->loginByUserAndPassword($params['user'], $params['password']);
    				break;
    			case (is_numeric($params) && $params > 0):
    				$result = $this->loginUser($params);
    				break;
    			default:
    				if (empty($params)) {
    					$result = false;
    				} else {
    					$result = $this->loginUser($params);
    				}
    		}
    		// ...
    	}
    
    	// ...
    	public function loginUser($user) {
    		switch (true) {
    			case is_object($user):
    				if (isset($user->data)) {
    					$a_user = $user->data;
    				} else {
    					return false;
    				}
    				break;
    			case (is_numeric($user) && ($user > 0)):
    				if (!($a_user = $this->User->findById($user))) {
    					return false;
    				}
    				break;
    			case (is_array($user) && (isset($user['User']['id']))):
    				$a_user = $user;
    				break;
    			default:
    				return false;
    		}
    		// ...
    		CFL::using('log');
    		if (empty($GLOBALS['loginIsLogged'])) {
    			$loginLog = new cflLoginTrackingLogger();
    			if ($this->loginType == 'implicit') {
    				$loginLog->implicit_login(array('user_id' => $a_user['User']['id']));
    			} else {
    				$loginLog->explicit_login(array('user_id' => $a_user['User']['id']));
    			}
    			$GLOBALS['loginIsLogged'] = true;
    		}
    		// ...
    	}
    }

    Сорри за много-много кода, еле-еле вписался в лимит. Но пришлось запостить все. Логическая цепочка совершенно потрясающая (смотрим с самого верхнего метода и идем дальше к самому нижнему методу). Тут у нас кода просто по колено: сумасшедший пахлава-код, использование глобальной переменной флага, особое извращенное использование конструкции switch, фактическое дублирование этого самого switch в двух последних методах, нейминг переменных и методов...
    Казалось бы, как все это вообще могло быть написано? Но использование компонента с говорящим именем BaseMagic все ставит на свои места.

    quall, 09 Февраля 2011

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

    +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
    <script language="javascript" type="text/javascript">
    <!--
    var ie=document.all?1:0;
    var ns=document.getElementById&&!document.all?1:0;
     
    function InsertSmile(SmileId)
    {
        if(ie)
        {
        document.all.message.focus();
        document.all.message.value+=" "+SmileId+" ";
        }
     
        else if(ns)
        {
        document.forms['guestbook'].elements['message'].focus();
        document.forms['guestbook'].elements['message'].value+=" "+SmileId+" ";
        }
     
        else
        alert("Ваш браузер не поддерживается!");
    }
    // -->
    </script>

    qbasic, 08 Февраля 2011

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

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ($this->Session->check('_userJustRegistered')) {
    	switch (($tmpJR = $this->Session->read('_userJustRegistered'))) {
    		case 'confirmed':
    			$this->Session->delete('_userJustRegistered');
    			break;
    		case 'not_confirmed_first':
    			$this->Session->write('_userJustRegistered', 'not_confirmed');
    			break;
    	}
    }

    Кусочек многоступенчатой системы по определению статуса юзера.

    quall, 08 Февраля 2011

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

    +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
    QString convToHex( unsigned char *bytes, int size )
    {
    	if( size > 16 )
    		size = 16;
    	QString ret;
    	for( int i = 0; i < size; i++ )
    	{
    		char buf[64];
    		::snprintf( buf, sizeof(buf), "%02x", (unsigned int) bytes[i] );
    		ret += buf;
    	}	
    	return ret;
    }
    
    QString TarCreator::generateGuid( const std::string &tDeviceSerial,
    		const std::string &nDatetime, unsigned long long int id )
    {
    	std::ostringstream s;
    	s << tDeviceSerial;
    	s << nDatetime;
    	s << id;
    	
    	QCryptographicHash hash( QCryptographicHash::Md5 );
    	hash.addData( QByteArray( s.str().c_str() ) );
    	QByteArray result = hash.result();
    	return convToHex( (unsigned char*)result.data(), result.size() );
    }

    panter_dsd, 08 Февраля 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    void IRQHandler(void)
    {
    ...
    WaitSemaphore(semH);

    Из кода для встроенного устройства реального времени.

    Говногость, 08 Февраля 2011

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