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

    +2

    1. 1
    https://habrahabr.ru/post/280121/

    RestAPI в 2016 году. Отсосите, любители фреймворков и оттестированных библиотек

    loki90, 24 Марта 2016

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

    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
    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
    <?php
      header('Content-Type: text/plain;'); //Мы будем выводить простой текст
      set_time_limit(0); //Скрипт должен работать постоянно
      ob_implicit_flush(); //Все echo должны сразу же отправляться клиенту
      $address = 'localhost'; //Адрес работы сервера
      $port = 1985; //Порт работы сервера (лучше какой-нибудь редкоиспользуемый)
      if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
        //AF_INET - семейство протоколов
        //SOCK_STREAM - тип сокета
        //SOL_TCP - протокол
        echo "Ошибка создания сокета";
      }
      else {
        echo "Сокет создан\n";
      }
      //Связываем дескриптор сокета с указанным адресом и портом
      if (($ret = socket_bind($sock, $address, $port)) < 0) {
        echo "Ошибка связи сокета с адресом и портом";
      }
      else {
        echo "Сокет успешно связан с адресом и портом\n";
      }
      //Начинаем прослушивание сокета (максимум 5 одновременных соединений)
      if (($ret = socket_listen($sock, 5)) < 0) {
        echo "Ошибка при попытке прослушивания сокета";
      }
      else {
        echo "Ждём подключение клиента\n";
      }
      do {
        //Принимаем соединение с сокетом
        if (($msgsock = socket_accept($sock)) < 0) {
          echo "Ошибка при старте соединений с сокетом";
        } else {
          echo "Сокет готов к приёму сообщений\n";
        }
        $msg = "Hello!"; //Сообщение клиенту
        echo "Сообщение от сервера: $msg";
        socket_write($msgsock, $msg, strlen($msg)); //Запись в сокет
        //Бесконечный цикл ожидания клиентов
        do {
          echo 'Сообщение от клиента: ';
          if (false === ($buf = socket_read($msgsock, 1024))) {
            echo "Ошибка при чтении сообщения от клиента";       }
          else {
            echo $buf."\n"; //Сообщение от клиента
          }
          //Если клиент передал exit, то отключаем соединение
          if ($buf == 'exit') {
            socket_close($msgsock);
            break 2;
          }
          if (!is_numeric($buf)) echo "Сообщение от сервера: передано НЕ число\n";
          else {
            $buf = $buf * $buf;
            echo "Сообщение от сервера: ($buf)\n";
          }
          socket_write($msgsock, $buf, strlen($buf));
        } while (true);
      } while (true);
      //Останавливаем работу с сокетом
      if (isset($sock)) {
        socket_close($sock);
        echo "Сокет успешно закрыт";
      }
    ?>

    HiNeX, 23 Марта 2016

    Комментарии (62)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. PHP / Говнокод #19641

    −1

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

    Зачем

    crook, 16 Марта 2016

    Комментарии (1)
  9. 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

    Комментарии (9)
  10. 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)