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

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    if($strNavQueryString <> "" && $strParam <> "")
    			$strNavQueryString = "&".$strNavQueryString;
    if($strNavQueryString == "" && $strParam == "")
    			return $sUrlPath;

    Горе от ума

    govnomes, 13 Февраля 2011

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

    +163

    1. 1
    2. 2
    3. 3
    function isInt($val) {
        return is_int($val) || (string)(int)$val === (string)$val;
    }

    Проверка на целое число

    govnomes, 11 Февраля 2011

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function onsub(text){
    	if (confirm(text)) { 
    		return true;
    	}
    	else {
    		return false;
    	}
    }

    Копаюсь в системе биллинга...
    Убило!

    Gogogo, 08 Февраля 2011

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

    +163

    1. 1
    throw new TSilentException("");

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

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

    +163

    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
    <?
    class Thread {
    <...>
    	function Thread($proc_id) {
    		$this->db=new ezSQL_mssql(s_login, s_password, s_db_name_threads, s_host);
    		$this->proc_id=$proc_id;
    		$this->timeout=500;
    		$this->last_busy=0;
    		$this->notactive_num=0;
    		$query="INSERT INTO threads(proc_id, last_beat) VALUES('".$this->proc_id."','".(time()+60)."');";
    		$this->db->query($query);
    	}
    	static function Create($url,$proc_id) {
    		$t = new Thread($proc_id);
    		
    		//### execute thread
    		//NB!!!
    		//BE CAREFUL WITH LOG PATHS, IF YOU MISS OR MISSPEL THE PATH, IT IS HARDLY POSSIBLE TO DEBUG
    		//IF YOU MISSPELL THE PATH YOU CAN FACE THE PROBLEM OF THREADS SIMPLY DO NOT START OR DO NOT LOG WITHOUT ANY NOTIFICATION
    		//USE YOUR OWN PATHS FOR PHP, LOGS AND COMMAND LINE COMMANDS AD PARAMETERS FOR YOUR SPECIFIC OS, WINDOWS EXAMPLE IS BELOW
    		//start /B will execute background process in windows, > symbol will store the output of current process into log file
    		//you can call threads from another server via http request etc.
    		pclose(popen("start /B \"$proc_id\" C:\php\php.exe D:\wwwroot\\newimport\elko\import_ignitor_thread.php > D:\globalimport\logs\\".$proc_id.".txt $proc_id","r"));		
    		
    		//give some time to start the thread
    		Sleeper(1000);
    		return $t;
    	}
    	
    	//check is Thread active or not
    	//check active, busy, last beat etc.
    	//you can put here your own business logic how thread should be checked for statused etc.
    	function isActive () {
        if($this->state==3){
    			return false;
    		}elseif ($this->last_busy==1){
    			return true;
    		}
    		$cur_time=time();
    		if($cur_time>$this->last_beat){
    			$result=$this->db->get_var("SELECT last_beat FROM threads WHERE proc_id=".$this->proc_id);
    			$this->state=$this->db->get_var("SELECT state FROM threads WHERE proc_id=".$this->proc_id);
    			if($cur_time<$result){
    				return true;
    			}
    		}else{
    			return true;
    		}
    		return true;
    	}
    	
    	//check is Thread is busy or not, in order to give a new task/job
    	//it is similat to the previous procedure
    	function isBusy() {
    		//$this->tell("ping"); - this could be implemented in the future
    		$cur_time=time();
    		if($cur_time>$this->last_beat or $this->last_busy==0){
    			$result=$this->db->get_var("SELECT busy FROM threads WHERE proc_id=".$this->proc_id);
    			$this->last_busy=$result;
    			if($result==1){
    				return true;
    			}else{
    				return false;
    			}
    		}else{
    			return false;
    		}
    	}
    	
    	//tells a command to the thread
    	function tell($thought, $params = NULL) {
    		$param=base64_encode(serialize($params));
    		$query="INSERT INTO cmd(proc_id, cmd, param) VALUES('".$this->proc_id."','".$thought."','".$param."');";
    		$this->db->query($query);
    	}
    }

    'многопоточность'

    xXx_totalwar, 07 Февраля 2011

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

    +163

    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
    function IndexDownloadsAddVote()
    {
    	global $db, $config, $site, $user;
    	
    	$ip = getip();
    	$file = SafeEnv($_GET['file'], 11, int); // ид файла
    	$cat = SafeEnv($_GET['cat'], 11, int); // категория
    	$vote = SafeEnv($_POST['vote'], 1, int); // голос
    
    	$site->OtherMeta .= '<meta http-equiv="REFRESH" content="2; URL=index.php?name=downloads&amp;op=full&amp;cat='.$cat.'&amp;file='.$file.'">';
    
    	$where = "`id`='$file' and `active`='1'"; // where для downloads
    	$ex_where = GetWhereByAccess('view'); // видимость
    
    	if($ex_where != ''){
    		$where .= ' and ('.$ex_where.')';
    	}
    
    	$db->Select('downloads', $where); // ищем файл
    
    	if($db->NumRows() > 0){ // существует ли файл
    		$dfile = $db->FetchRow(); // пищем файл в переменную
    		if($dfile['allow_votes']=='1'){ // оценки разрешены
    			if($user->Auth) {
    				$where = "`user_id` = '".$user->Get('u_id')."'";
    			} else {
    				$where = "`ip` = '".$ip."'";
    			}
    
    			$db->Select('downloads_rating', $where); // Делаем запрос
    
    			if($vote==0){
    				$site->AddTextBox('','<center>Вы не выбрали оценку.<br /><br /><a href="javascript:history.go(-1)">Назад</a></center>');
    			} else {
    
    				$user->ChargePoints($config['points']['download_rating']);
    
    				$time = time();
    
    				if($db->NumRows()>0) {
    					$db->Update('downloads_rating', "`vote` = '$vote'", "(`user_id` = '".($user->Auth ? $user->Get('u_id') : 0)."' or `ip` = '$ip') and `downid` = '$file'");
    					
    					$numvotes = SafeDB($dfile['votes_amount'],11,int);
    				} else {
    					$db->Insert('downloads_rating',"'','$file','$ip','$time','$vote','".($user->Auth ? $user->Get('u_id') : 0)."'");
    					
    					$numvotes = SafeDB($dfile['votes_amount'],11,int)+1;
    				}
    				$vote = SafeDB($dfile['votes'],11,int)+$vote;
    				$db->Update('downloads',"votes_amount='$numvotes',votes='$vote'","`id`='$file'");
    				$site->AddTextBox('','<center>Спасибо за вашу оценку.<br><br><a href="javascript:history.go(-1)">Назад</a></center>');
    			}
    		}else{
    		//Оценка запрещена
    		$site->AddTextBox('','<center>Извините, оценка этого файла запрещена.<br><br><a href="javascript:history.go(-1)">Назад</a></center>');
    		}
    	}else{
    	//Файл не существует
    	$site->AddTextBox('','<center>Произошла ошибка. Файл, который вы пытаетесь оценить, не найден в нашем файловом архиве. Возможно он был удален.<br><br><a href="javascript:history.go(-1)">Назад</a></center>');
    	}
    }

    Функция оценки файла из русской CMS

    Мартин, 06 Февраля 2011

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Engine::GetSingleton()->SetCallbacks(
    	new myname::Method<void(void),Application>(&Application::Render, boost::weak_ptr<Application>(application)),
    	new myname::Method<void(void),Application>(&Application::Update, boost::weak_ptr<Application>(application)),
    	0,
    	0,
    	new myname::Method<void(void),Application>(&Application::Init, boost::weak_ptr<Application>(application)),
    	new myname::Method<void(void),Application>(&Application::Cleanup, boost::weak_ptr<Application>(application))
    );

    Особая шаблонная магия + ООП мозга.

    CHayT, 05 Февраля 2011

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (!isset($caseMenu['child']))	{
    		$catsArr['list'][$caseMenu['parent']]['status'] = "active";				
    	}else{
    		$catsArr['list'][$caseMenu['parent']]['children']['list'][0]['status'] = "active";	
    	}

    помоему это охуенно

    warider, 03 Февраля 2011

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

    +163

    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
    <?php
    
    public function selectMenu($iLaId)
    {
    if (!is_numeric($iLaId))
      $iLaId = intval($iLaId);
     
    ob_start();
    ?>
     SELECT m.m_name
     FROM menu AS m
      WHERE m.la_id = <?= $iLaId ?>
    <?php
    $sQuery = ob_get_clean();
    $oResult = mysql_query($sQuery);
    return mysql_fetch_array($oResult);
    }
     
    //...
    
    $oQueries = new Queries;
    $aData = Queries->selectMenu(1);
     
    $sOutput = '<ol>';
    foreach ($aData as $v)
    {
    $sOutput .= '<li>'.$v['m_name'].'</li>';
    }
    $sOutput .= '</ol>';
     
    echo $sOutput;

    qbasic, 02 Февраля 2011

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

    +163

    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
    #define nCyrLang 40
    
    char CyrNumLang[nCyrLang];
    
    memset(&CyrNumLang[0],0,nCyrLang);
    
    CyrNumLang[1]=7;
    CyrNumLang[2]=9;
    CyrNumLang[3]=11;
    CyrNumLang[4]=83;
    CyrNumLang[5]=84;
    CyrNumLang[6]=85;
    CyrNumLang[7]=86;
    CyrNumLang[8]=44;
    CyrNumLang[9]=87;
    CyrNumLang[10]=48;
    CyrNumLang[11]=88;
    CyrNumLang[12]=89;
    CyrNumLang[13]=53;
    CyrNumLang[14]=56;
    CyrNumLang[15]=6;

    Труъ способ инициализации массивов.

    glprizes, 01 Февраля 2011

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