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

    В номинации:
    За время:
  2. 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)
  3. PHP / Говнокод #5563

    +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
    <?php
    function Sleeper($mSec)
    {
    	//    For dummies like me who spent 5 minutes
    	//    wondering why socket_create wasn't defined
    	if(!function_exists('socket_create')){
    		die("Please enable extension php_sockets.dll");
    	}
    	//    So the socket is only created once
    	static $socket=false;
    	if($socket===false){
    		$socket=array(socket_create(AF_INET,SOCK_RAW,0));
    	}
    	$pSock=$socket;
    	//    Calc time
    	$uSex = $mSec * 1000;
    	//    Do the waiting
    	socket_select($read=NULL,$write=NULL,$pSock,0,$uSex);
    	//    OCD
    	return true;
    }

    что бы гк делал без этого чудесного языка..

    xXx_totalwar, 07 Февраля 2011

    Комментарии (5)
  4. ActionScript / Говнокод #5534

    −116

    1. 1
    2. 2
    3. 3
    4. 4
    var strLabel:String = (_numCurrentUpload + 1) + "/" + _filesToUpload.length;
    strLabel = (_numCurrentUpload + 1 <= _filesToUpload.length && numPerc > 0 && numPerc < 100) ? numPerc + "% - " + strLabel : strLabel;
    strLabel = (_numCurrentUpload + 1 == _filesToUpload.length && numPerc == 100) ? "Upload Complete - " + strLabel : strLabel;
    strLabel = (_filesToUpload.length == 0) ? "" : strLabel;

    Вот так просто и незатейливо обновляется статус загруженного файла :)

    dimas_art, 04 Февраля 2011

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

    +116

    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
    public class TObjects
    	{
    		public delegate T DeferredConstruction<out T>();
    
    		public static void Dispose<T>(ref T objectForDispose)
    		{
    			var typeOfObjectForDispose = typeof(T);
    			if (!typeOfObjectForDispose.IsClass)
    				DisposeIfIDisposable(ref objectForDispose, typeOfObjectForDispose);
    			else
    				if (!Equals(objectForDispose, null))
    					DisposeIfIDisposable(ref objectForDispose, typeOfObjectForDispose);
    			objectForDispose = default(T);
    			//objectForDispose = (T)(object)(null);
    		}
    
    		public static void Create<T>(ref T objectForCreate, DeferredConstruction<T> newObject)
    		{
    			Dispose(ref objectForCreate);
    			objectForCreate = newObject();
    		}
      private static void DisposeIfIDisposable<T>(ref T objectForDispose, Type typeOfObjectForDispose)
            {
                bool canDisposable = (objectForDispose as IDisposable) != null;
                if (canDisposable)
                {
                    var dispose = typeOfObjectForDispose.GetMethod("Dispose");
                    dispose.Invoke(objectForDispose, new object[] { });
                }
            }
    }

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

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

    +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
    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
    <?php
    if(empty($mw)) 
    { 
      header ("Location: ..");
      exit; 
    }
    ?>
    <center><h4>АККАУНТ</H4><hr>
    <...> 
    <script type="text/javascript">//<![CDATA[
    function isAlphaNumeric(value)
    {
      if (value.match(/^[a-zA-Z0-9]+$/))
        return true;
      else
        return false;
    }
    function checkform(f)
    {
      if (f.account.value=="")
      {
        alert("Заполните все поля формы");
        return false;
      }
      if (!isAlphaNumeric(f.account.value))
      {
        alert("Заполните все поля формы");
        return false;
      }
      if (f.password.value=="")
      {
        alert("Не введен пароль");
        return false;
      }
      if (!isAlphaNumeric(f.password.value))
      {
        alert("444444");
        return false;
      }
      if (f.password2.value=="")
      {
        alert("Не введен повтор пароля");
        return false;
      }
      if (f.password.value!=f.password2.value)
      {
        alert("Не совпадает пароль");
        return false; 
      }
      return true;
    }
    //]]></script>
    <form method="post" action="index.php?id=reg_false" onsubmit="return checkform(this)">
    <table>
     <tr>
      <td>Логин</td>
      <td><input type="text" name="account" maxlength="15" /></td>
     </tr>
     <tr>
      <td>Пароль</td>
      <td><input type="password" name="password" maxlength="15" /></td>
     </tr>
     <tr>
      <td>Повторить пароль</td>
      <td><input type="password" name="password2" maxlength="15" /></td>
     </tr>
     <tr>
      <td colspan="2" style="text-align: center;"><br />
      <input type="submit" name="submit" value="Регистрация" /></td>
     </tr>
    </table>
    </form>
     
    <?php
    if(ereg("^([a-zA-Z0-9_-])*$", $_POST['account']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password2']))
    {
    	if ($page="index.php" && $_POST['account'] && strlen($_POST['account'])<16 && strlen($_POST['account'])>3 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2'])
    	{       
    		$check=mysql_query("select * from accounts where login='".$_POST['account']."'");
    		$check1=mysql_num_rows($check);
    		if($check1>0)
                            echo "<p clss='error'><b>Ошибка  при регистрации: такой аккаунт уже сущетвует.</b></p>";
    		else
    		{
    			mysql_query("INSERT INTO accounts (login, password, access_level) VALUES ('" . 
    				$_POST['account']."', '".base64_encode(pack('H*', sha1($_POST['password'])))."', 0)", $link);
    			mysql_close($link);
    			print '<p class="error"><b>Регистрация прошла успешно</b></p>';
    		}
    	}
    	else
            print '<p class="error"><b> </b></p>'.mysql_error();
    }
    else
            echo "Введенные вами данные не прошли проверку на безопасность. Пожалуйста, попробуйте зарегистрироваться с другим логином и паролем.";

    qbasic, 02 Февраля 2011

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

    +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
    public function DateConvertDb($value=0){
    		if(strlen($value)<1){return false;}
    		$time = explode(' ',$value);
    		$date = $time[1];
    		$year  = $time[2];
    		for($i=1;$i<13;$i++)
    		{
    			if($this->montharray[$i]==$time[0]){$month=$i;}
    		}
    		$date=str_replace(',',' ',$date);
    		$year=trim($year); $month=trim($month); $date=trim($date);
    		if($month<10){$month="0".$month;}
    		if($date<10){$date="0".$date;}
    		return $year."-".$month."-".$date;
           
    	}

    Парсинг даты перед сохранением в БД.

    zxm, 31 Января 2011

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

    +146

    1. 1
    Notice: unserialize(): Error at offset 8180 of 8192 bytes in /home/***/govnokod/mzz/system/cache/cacheFile.php on line 81

    -10

    %govnouser%, 30 Января 2011

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    if (!'8'=='=')
    {
          //код
    }

    kasthack, 29 Января 2011

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    //Мега-изобретательный, сцуко, флаг!
    public static bool DONT_UPDATE_INPUTMANAGER = FACEPALM;
    
    ...
    
    //Флаг выпилил, быстра блджад!!1
     if (DONT_UPDATE_INPUTMANAGER) DONT_UPDATE_INPUTMANAGER = false;

    Достаточно недавний мой высер, сделанный на обезумевшую от непоняток голову. Трабла была в том, что при перехода из одного в меню в другое второе меню так же воспринимало эту кнопку и шагало дальше, хотя цикл вроде прошёл и InputManager уже сбросился. Пришлось сделать вот таким вот флагом (правда до сих пор не могу понять КАК я умудрился такой if написать...).

    P.S: Похожая фигня и у MS, см. CurveEditor (create.msdn.com -> education catalog -> tools -> CurveEditor -> переменная disableUIEvents (причём int!!!)).

    RaZeR, 29 Января 2011

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

    +165

    1. 1
    2. 2
    //$viewPath = explode(DIRECTORY_SEPARATOR, $this->_helper->viewRenderer->getViewScript());
     $viewPath = explode("/", $this->_helper->viewRenderer->getViewScript());

    Первое закомментировали, второе вставили. Отличный рефакторинг!

    anycolor, 28 Января 2011

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