1. PHP / Говнокод #17467

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // classes.php
    return [
      'yii\base\Action' => YII2_PATH . '/base/Action.php',
      'yii\base\ActionEvent' => YII2_PATH . '/base/ActionEvent.php',
      'yii\base\ActionFilter' => YII2_PATH . '/base/ActionFilter.php',
      // еще порядка трех сотен классов
    ];

    https://github.com/yiisoft/yii2/blob/d2b864da84a68d56a96709479af78d203f050451/framework/classes.php

    осень 2014, использующий composer модный фреймворк, "requires PHP 5.4 and embraces the best practices and protocols found in modern Web application development", и, конечно, ебаный стыд.

    Fike, 18 Января 2015

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <?php
    // comment out the following two lines when deployed to production
    defined('YII_DEBUG') or define('YII_DEBUG', true);
    defined('YII_ENV') or define('YII_ENV', 'dev');
    require(__DIR__ . '/../vendor/autoload.php'); // загружаем автозагрузчик
    require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); // DISREGARD THIS, загружаем вручную
    $config = require(__DIR__ . '/../config/web.php');
    (new yii\web\Application($config))->run();

    Входной скрипт Yii 2. Эта штука требует небольшого пояснения.
    Дело в том, что использовать константу YII_ENV для разработчиков оказалось некошерно, поэтому используются булевы константы YII_ENV_DEV, YII_ENV_PROD, YII_ENV_TEST, которые вычисляются в файле класса BaseYii (на всякий уточню - да, в файле с объявлением класса первым делом высчитываются глобальные константы).
    Так как понятие декларативной конфигурации тоже не очень близко этому фреймворку, эти константы используются прямо в конфигурационном php-файле. То есть, файл Yii.php обязан быть подгружен до того, как будут подгружены конфиги. А даже если сделать конфиг без использования этих констант или объявить их заранее, то последними строками Yii.php (после объявления класса) идет подключение автозагрузчика (да-да, в файле, который тоже служит для объявления класса), без которого почему-то никак (в composer-based проекте, ага). Ну, то есть без ручного подключения файла в этом фреймворке всё-таки вообще никак.
    Я не понимаю, как можно было умудриться идти практически по всем современным стандартам и опять проебать всё.

    Fike, 18 Января 2015

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if($locale == 'en') {
        $client->ios_in_app_purchase_id = 0; //1
    } else {
        $client->ios_in_app_purchase_id = 0;
    }

    безысходность

    DemoniacDeath, 17 Января 2015

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

    +155

    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
    public function actionNominate()
    	{
    		if (isset($_POST['user']) and isset($_POST['ref']))
    		{
    
    			$user = $ref = NULL;
    			$user = strip_tags(trim($_POST['user']));
    			$ref = strip_tags(trim($_POST['ref']));
    
    			$test = UserAwardsRef::model()->count(array("condition"=>"id_ref=$ref AND id_user=$user"));
    
    			if ($test==0)
    			{
    				if ($user and $ref)
    				{
    					$model = new UserAwardsRef();
    					$model->id_ref = $ref;
    					$model->id_user = $user;
    					if ($model->save())
    					{
    						echo 1;
    					} else {
    						echo 'error';
    					}
                    } else {
    
    					echo "error";
    				}
    
    			} else {
    				echo 2;
    			}
    
    		} else {
    
    			echo "error";
    		}
    
    	}

    Входящие параметры предполагаются - integer
    Необходимо один раз насрать в таблицу с ключами из поста.

    obidnov, 16 Января 2015

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

    +165

    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
    public static function isOwner()
    {
            $user = app::getSession();
            if ($user->isAuth()){
    
                switch (true){
                    case ($_GET('action') == 'upload'):
                    case ($_GET('login') == $user->getUserLogin()):
                        return true;
                        break;
                    default:
                        return false;
                        break;
                }
    
            }
            return false;
        }

    Проверка является ли пользователь владельцем фотогалереи)))

    Gkoder_, 15 Января 2015

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

    +167

    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
    final public static function getSomething($version_line = "pro") {
    		$default_domain = domainsCollection::getInstance()->getDefaultDomain();
    
    		if($_SERVER['SERVER_ADDR']) {
    			$cs2 = md5($_SERVER['SERVER_ADDR']);
    		} else {
    			$cs2 = md5(str_replace("\\","",$_SERVER['DOCUMENT_ROOT']));
    		}
    		     
    		switch($version_line) {
    			case "pro":
    				$cs3 = md5(md5(md5(md5(md5(md5(md5(md5(md5(md5($default_domain->getHost()))))))))));
    				break;
    
    			case "free":
    				$cs3 = md5(md5(md5($default_domain->getHost())));
    				break;
    
    			case "lite":
    				$cs3 = md5(md5(md5(md5(md5($default_domain->getHost())))));
    				break;
    
    			case "freelance":
    				$cs3 = md5(md5(md5(md5(md5(md5(md5($default_domain->getHost())))))));
    				break;
    				
    			case "trial": {
    				$cs3 = md5(md5(md5(md5(md5(md5($default_domain->getHost()))))));
    			}
    		}
    
    		$licenseKeyCode = strtoupper(substr($cs2, 0, 11) . "-" . substr($cs3, 0, 11));
    		return $licenseKeyCode;
    	}

    сложная система нипель

    deconf, 15 Января 2015

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function maybe_unserialize( $original ) {
            if ( is_serialized( $original ) ) // don't attempt to unserialize data that wasn't serialized going in
                    return @unserialize( $original );
            return $original;
    }

    Wordpress <3
    is_serialized тоже блещет
    https://core.trac.wordpress.org/browser/tags/4.1/src/wp-includes/functions.php#L265

    Fike, 15 Января 2015

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public function change_password() {
    		if (!oauth_verify_client($this->client_id, $this->client_secret, 'user/password')) {
    			echo json_encode(array('status' => 403, 'error' => array('code' => 5, 'description' => 'accessError')));
    		}
    		$email = $this->input->post('email');
    		$new_password= $this->input->post('new_password');
    		//...

    "Тебе сюды нельзя, но так уж и быть, поменяю..."

    Lowezar, 14 Января 2015

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function decode_php_abbr($abbr){
    	if(strpos($abbr,'PHP')!==false){
    		$abbr=str_replace('PHP','PHP: Hypertext Preprocessor',$abbr);
    		decode_php_abbr($abbr);
    	}
    	else echo $abbr;
    }
    
    decode_php_abbr('PHP');

    Расшифровываем аббревиатуру PHP или когда на работе немного скучно.

    VokaMut, 13 Января 2015

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

    +166

    1. 1
    2. 2
    3. 3
    define("DB_YESTERDAY",date('d/m/Y', time()-172800-86400-86400-86400
    -86400-86400-86400-86400-86400-86400-86400-86400-86400-86400-86400
    -86400-86400-86400-86400-86400-86400-86400-86400-86400-86400)); //если более 2 дней подряд были выходные, валюты не показывались. Дописано "-86400"

    Дописано -86400? Забыли упомянуть, что 24 раза(

    govnokoder2, 12 Января 2015

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