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

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

    +160.2

    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
    <?
    function freadbyte($f)
    {
    	return ord(fread($f,1));
    };
    
    function freadword($f)
    {
    	$b1=freadbyte($f);
    	$b2=freadbyte($f);
    	return $b2*256+$b1;
    };
    
    function freadlngint($f)
    {
    	return freaddword($f);
    };
    
    function freaddword($f)
    {
    	$b1=freadword($f);
    	$b2=freadword($f);
    	return $b2*65536+$b1;
    };
    ?>

    полный набор из побочных эффектов, магических цифр, лишних переменных и алиасов

    xXx_totalwar, 31 Января 2010

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

    +160.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function UserIsFriends($u1,$u2)
    {
        $db=new DB();   
        $db->query("SELECT `status` FROM `friends` where `status`='friends' 
        AND (`first`='".$u1."' or `second`='".$u1."') 
        AND (`first`='".$u2."' or `second`='".$u2."')");
        if ($db->num_rows()!=0)$row=$db->next_record();
        if ($row["status"]=="friends") return true; else return false;
    }

    Функция проверки дружбы между двумя людьми... ***дец

    getrix, 11 Октября 2009

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

    +160.2

    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
    if($showmode == 0 || $showmode == 2):
    	if($count['user'] != 0):
    		if($count['user'] == 1):
    		    echo '<p class="tpwhosonline">Members Online: <span>1</span></p>';
    		else:
    		    if($count['user'] > 1):
    			    echo '<p class="tpwhosonline">Members Online: <span>' . $count['user'] . '</span></p>';
    			endif;
    		endif;
    	else:
    		echo '<p class="tpwhosonline">Members Online: <span>0</span></p>';
    	endif;
    	
        if($count['guest'] != 0):
    		if($count['guest'] == 1):
    		    echo '<p class="tpwhosonline">Guests Online: <span>1</span></p>';
    		else:
    		    if($count['guest'] > 1):
    			    echo '<p class="tpwhosonline">Guests Online: <span>' . $count['guest'] . '</span></p>';
    			endif;
    		endif;
    	else:
    	    echo '<p class="tpwhosonline">Guests Online: <span>0</span></p>';
        endif;
    endif;

    и такая вот хрень еще и за бабки продается (Joomla template)

    endi, 04 Сентября 2009

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

    +160.1

    1. 1
    2. 2
    3. 3
    public function getLastThreeIdeas($limit=3) {
        return $this->DB->select('SELECT id, title, user_name FROM ideas ORDER BY date DESC LIMIT ?d', $limit);
    }

    Отличный пример несоответствия названия метода и того, что он делает. По названию метода можно предположить, что он возвращает последние 3 записи. На деле можно получить больше записей блягодаря параметру $limit.

    vavaka, 08 Декабря 2009

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

    +160.1

    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
    while ($row = @mysql_fetch_array($result)) {
    			$id                  =$row[id];
    			$appelation          =$row[appelation];
    			$name                =$row[name];
    			$name2               =$row[name2];
    			$company             =$row[company];
    			$street              =$row[street];
    			$addition            =$row[addition];
    			$state               =$row[state];
    			$zip_code            =$row[zip_code];
    			$city                =$row[city];
    			$country             =$row[country];
    			$email               =$row[email];
    			$fax                 =$row[fax];
    			$phone               =$row[phone];
    }

    из одного шопика..

    asp1r1n, 02 Сентября 2009

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

    +160.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    class Company extends BaseCompany {
    //...
        public function setName($v){
            $this->setName(String::mb_ucfirst($v));
        }
    //...
    }

    Мегаметодика переопределения сеттеров. Symfony, Propel.

    guest, 29 Января 2009

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

    +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
    class Claims
    {
        ...
        function ReadClaim(...)
        {
            ...
            
            if ($this) $this->claim = $claim;
            $instance = $this ? $this : Claims::getInstance($claim);
    
            ...
        }
        ...
    }

    3371, 03 Апреля 2015

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

    +160

    1. 1
    eval('function func($what) {global $arr, $USER, $SCRIPT; '.$func.'}');

    3371, 30 Марта 2015

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

    +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
    abstract class class_getset {
    	protected $vars;
    	
    	public function get($name = "%all%") {
    		if($name == "%all%") {
    			return $this->vars;
    		}
    		else {
    			return $this->vars[$name];
    		}
    	}
    	
    	/* тут второй метод, угадай его название */
    }

    Старый код из 2012, интересное решение ...

    volter9, 25 Марта 2015

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

    +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
    $Result = MySQL_Query("SELECT name FROM users WHERE name='$Login'") or ("Can't execute query.");
                    
    if (MySQL_Num_Rows($Result))
    {
              echo "Account <b>".$Login."</b> is exists";
    }
    ...
    elseif ((StrLen($Pass) < 4) or (StrLen($Pass) > 10)) 
    
    {
    echo "Password must have more 4 and not more 10 symbols.";
    }
    
    elseif ((StrLen($Repass) < 4) or (StrLen($Repass) > 10)) 
    {
    echo "Repeat password must have more 4 and not more 10 symbols.";
    }
    
    elseif ((StrLen($Email) < 4) or (StrLen($Email) > 25)) 
    {
    echo "Email must have more 4 and not more 25 symbols.";
    }
    
    elseif ($Pass != $Repass)
    {
    echo "Password mismatch.";
    }

    Фрагмент регистрации из кода сайта MMO игры. Видимо die забыли и в итоге вся проверка фтопку. Так же там педантично кроме проверки несовпадения введенных паролей оба проверяют на длину и содержание символов (это еще можно описать заботой о юзвере).

    Мартин, 22 Марта 2015

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