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

    0

    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
    public function getWinnerEmail($id)
    {
            if (!is_numeric($id)) {
                throw new BadRequestHttpException('Ошибка:' . __FUNCTION__ . ' ' . __LINE___);
            }
    
            //$project = Projects::findOne(['id' => $id]);
            $project = (new \yii\db\Query())
                ->select(['id', 'win_user_id'])
                ->from(self::tableName())
                ->where(['id' => $id])
                ->one();
    //        if ($project['win_user_id'] == null) {
    //            return false;
    //        }
    
            $result = User::findOne(['id' => $project['win_user_id']]);
            if ($result != null) {
                return ['id' => $result->id, 'email' => $result->email];
            }
    }

    Метод модели "Project"
    PHP-Framework yii2

    NotFake, 22 Марта 2016

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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public function k($heh) {
    	return ($heh == "") ? rand() : $heh;
    }
    
    // ...
    $stars += count(array_intersect(
    	array($this->k($this->id_type), $this->k($this->id_type2), $this->k($this->id_type3)), 
    	array($this->k($that->id_type), $this->k($that->id_type2), $this->k($that->id_type3))
    ));
    // ...

    не учитываем пустые id_type

    Uhehesh, 18 Марта 2016

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

    −1

    1. 1
    http://freelansim.ru/tasks/139911?utm_source=toster&utm_medium=referral&utm_campaign=task&utm_content=block_freelansim

    Ну просто поржать.
    А так вообще печально.

    ЗЫ. Не давно на хабре читал про бакдор в wordpress е залившейся через обновление плагина.

    Vasiliy, 18 Марта 2016

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

    +6

    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
    function utf8ToCp1251($s,$type="w") {
        if ((is_string($s) && strlen($s)>0) && ((mb_detect_encoding($s,'UTF-8,CP1251')) == "UTF-8"))    { 
            $out="";
            for ($c=0;$c<strlen($s);$c++)         { 
                $i=ord($s[$c]); 
                if ($i<=127) @$out.=$s[$c]; 
                if (@$byte2)     { 
                    $new_c2=($c1&3)*64+($i&63); 
                    $new_c1=($c1>>2)&5; 
                    $new_i=$new_c1*256+$new_c2; 
                    if ($new_i==1025) { 
                        $out_i=168; 
                    } else { 
                        if ($new_i==1105) { 
                            $out_i=184;
                        } else { 
                        $out_i=$new_i-848; 
                        } 
                    } 
                    @$out.=chr($out_i); 
                    $byte2=false; 
                } 
                
                if (($i>>5)==6)  { 
                  $c1=$i; 
                  $byte2=true; 
                } 
            } 
            return $out; 
        } 
        else return $s; 
    }

    Одна из стандартных функций битрикса.
    Видимо iconv им не знаком...

    tanur, 17 Марта 2016

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

    +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
    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
    //получаем Элемент 
    $resource = CIBlockElement::GetByID($Bid);
    if ($ob = $resource->GetNextElement())
    {
        //вытягиваем поля, свойства
        $arFields = $ob->GetFields();
        $arFields['PROPERTIES'] = $ob->GetProperties();
    	
        // удаляем все поля, нахрен мы их вообще выдергивали
        $arFieldsCopy = $arFields;
    	unset(
    		$arFieldsCopy['ID'], 
    		$arFieldsCopy['~ID'], 
    		$arFieldsCopy['IBLOCK_SECTION_ID'], 
    		$arFieldsCopy['~IBLOCK_SECTION_ID'], 
    		$arFieldsCopy['TIMESTAMP_X'], 
    		$arFieldsCopy['~TIMESTAMP_X'], 
    		$arFieldsCopy['ACTIVE_TO'], 
    		$arFieldsCopy['~ACTIVE_TO'], 
    		$arFieldsCopy['DATE_ACTIVE_TO'], 
    		$arFieldsCopy['~DATE_ACTIVE_TO'], 
    		$arFieldsCopy['PREVIEW_PICTURE'], 
    		$arFieldsCopy['~PREVIEW_PICTURE'], 
    		$arFieldsCopy['PREVIEW_TEXT'], 
    		$arFieldsCopy['~PREVIEW_TEXT'], 
    		$arFieldsCopy['DETAIL_PICTURE'], 
    		$arFieldsCopy['~DETAIL_PICTURE'], 
    		$arFieldsCopy['DETAIL_TEXT'], 
    		$arFieldsCopy['~DETAIL_TEXT'], 
    		$arFieldsCopy['XML_ID'], 
    		$arFieldsCopy['~XML_ID'], 
    		$arFieldsCopy['EXTERNAL_ID'], 
    		$arFieldsCopy['~EXTERNAL_ID'], 
    		$arFieldsCopy['TMP_ID'], 
    		$arFieldsCopy['~TMP_ID'], 
    		$arFieldsCopy['CODE'], 
    		$arFieldsCopy['~CODE'], 
    		$arFieldsCopy['SEARCHABLE_CONTENT'], 
    		$arFieldsCopy['~SEARCHABLE_CONTENT'], 
    		$arFieldsCopy['WF_LAST_HISTORY_ID'], 
    		$arFieldsCopy['~WF_LAST_HISTORY_ID'], 
    		$arFieldsCopy['WF_COMMENTS'], 
    		$arFieldsCopy['~WF_COMMENTS'], 
    		$arFieldsCopy['WF_DATE_LOCK'], 
    		$arFieldsCopy['~WF_DATE_LOCK'], 
    		$arFieldsCopy['WF_LOCKED_BY'], 
    		$arFieldsCopy['~WF_LOCKED_BY'], 
    		$arFieldsCopy['WF_NEW'], 
    		$arFieldsCopy['~WF_NEW'], 
    		$arFieldsCopy['WF_PARENT_ELEMENT_ID'], 
    		$arFieldsCopy['~WF_PARENT_ELEMENT_ID'], 
    		$arFieldsCopy['SHOW_COUNTER'], 
    		$arFieldsCopy['~SHOW_COUNTER'], 
    		$arFieldsCopy['TAGS'], 
    		$arFieldsCopy['~TAGS'], 
    		$arFieldsCopy['LOCKED_USER_NAME'], 
    		$arFieldsCopy['~LOCKED_USER_NAME'], 
    		$arFieldsCopy['SHOW_COUNTER_START'],
    		$arFieldsCopy['~SHOW_COUNTER_START']
    	);
           
         
            $arFieldsCopy['ACTIVE']='N';
    	$arFieldsCopy['ACTIVE_FROM']=date('d.m.Y');
           /*... тра тра та заполняю я поля ....*/ 
    
         $arFieldsCopy['PROPERTY_VALUES'] = [
           /* ... тра та та, 
                         тра та та,
                            заполняю свойства я  
                ...
          */
         ];
           /*
               ... Продолжая песню петь
                       удалю я все теперь 
               ...
           */
    	unset($arFieldsCopy['PROPERTIES']);
       // кульминация пьесы, добавление нового Элемента 
        $el = new CIBlockElement();
        $NEW_BID_ID = $el->Add($arFieldsCopy);
    }

    Эм.... толи память экономит, то ли оплата за код построчно ....

    BroadcastAddress, 16 Марта 2016

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

    −1

    1. 1
    if ( strpos(str_replace('"', "'", json_encode($opt)), "'status':0") )

    Зачем

    crook, 16 Марта 2016

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

    +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
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    //#1
     $queryo = "SELECT * FROM `tx_carmodels` WHERE  1 <= ID AND ID <= (SELECT COUNT(*) FROM `tx_carmodels`) ";
     $resulto = mysql_query($queryo);
     $sqlresos = mysql_fetch_assoc($resulto);
     foreach  ($sqlresos as $sqlreso){
            $preVendor[] = $sqlreso["vendor"];
                      //  print_r($sqlreso);
     }
     $arVendor = array_unique($preVendor);
     foreach($arVendor as $vendor) {
                        echo '<option value="'.$vendor.'">'.$vendor.'</option>';
       }
    // #2
    
    $query = "SELECT count(*) FROM `tx_carmodels`";
    $result = mysql_query($query);
    $res = mysql_fetch_array($result);
    $allinfile = $res[0];
    
         for ($i = 1; $i <= $allinfile; $i++) {
               $queryo = "SELECT * FROM `tx_carmodels` WHERE id=$i";
               $resulto = mysql_query($queryo);
               $sqlreso = mysql_fetch_assoc($resulto);
               $preVendor[] = $sqlreso["vendor"];
                    //print_r($sqlreso);
         }
         $arVendor = array_unique($preVendor);
         foreach($arVendor as $vendor) {
               $vsel = ($_GET["vendor"] == $vendor)?('selected="selected"'):('');
               echo '<option value="'.$vendor.'" '.$vsel.'>'.$vendor.'</option>';
          }

    Два перла,
    даже и коментировать нечего ....

    BroadcastAddress, 16 Марта 2016

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // Статическая типизация для PHP < 7.0
    
    set_error_handler(function(){});
    
    function foo(int $bar)
    {
    	var_dump($bar);
    }
    
    foo(1); // Работает и выводит int(1)

    Недавно разгребал легасикод доставшийся по наследству. Увидел статическую типизацию там где ее не должно было быть. Проект крутится на 5.3.

    KiTE, 16 Марта 2016

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

    +3

    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
    /**
         * Validate natural number (0,1,2,3,...)
         *
         * @param string $value number
         * @return string
         */
        public function natural($value)
        {
            $response = '';
            if (!preg_match('/^[0-9]+$/', $value)) {
                $response = $this->lang->get_str('system_invalid_neutral');
            }
            return $response;
        }
    
        /**
         * Validate natural number, but not a zero (1,2,3,...)
         *
         * @param string $value number
         * @return string
         */
        public function natural_no_zero($value)
        {
            $response = '';
            if (!preg_match('/^[0-9]+$/', $value)) {
                $response = $this->lang->get_str('system_invalid_neutral_no_zero');
            }
    
            if ($value == 0) {
                $response = $this->lang->get_str('system_invalid_neutral_no_zero');
            }
            return $response;
        }

    b2012993, 15 Марта 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    protected function onAfterDispatchInitUsersInactivityFeatureIfNotDisabled()
    {
        if (!$this->disableUserInactivityFeature)
            $this->initUsersInactivityFeature();
    }

    DIX315, 14 Марта 2016

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