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

    +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
    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
    interface PostRepository
    {
        public function save(Post $model);
    }
    
    class Post
    {
        protected $id;
        protected $title;
        protected $content;
    
        public function setId(int $id)
        {
            $this->id = $id;
        }
    
        public function getId(): ?int
        {
            return $this->id;
        }
    
        public function setTitle(string $title)
        {
            $this->title = $title;
        }
    
        public function getTitle(): string
        {
            return $this->title ?: '';
        }
    
        public function setContent(string $content)
        {
            $this->content = $content;
        }
    
        public function getContent(): string
        {
            return $this->content ?: '';
        }
    }

    Блядь, до чего ж отвратительный код. Говёность «PHP», тщательно и с извращённой любовью смешанная с ЙАЖАвским бойлерплейтом. Омерзительно.

    https://habr.com/ru/post/505400/
    >>> Как должны выглядеть модели?

    gost, 08 Июня 2020

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

    +3

    1. 1
    Error displaying the error page: Application Instantiation Error: Could not connect to MySQL.

    МОЭК запустила дополнительный информационный сервис для москвичей о сроках отключения горячей воды

    https://online.moek.ru

    real_escape_string, 03 Июня 2020

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

    +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
    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
    if ($arItem['OFFERS_PROPS_DISPLAY']) {
                                    foreach ($arItem['JS_OFFERS'] as $keyOffer => $arJSOffer) {
                                        $strProps = '';
                                        if (!empty($arJSOffer['DISPLAY_PROPERTIES'])) {
                                            foreach ($arJSOffer['DISPLAY_PROPERTIES'] as $arOneProp) {
                                                $strProps .= '<br>'.$arOneProp['NAME'].' <strong>'.(
                                                    is_array($arOneProp['VALUE'])
                                                    ? implode(' / ', $arOneProp['VALUE'])
                                                    : $arOneProp['VALUE']
                                                ).'</strong>';
                                            }
                                        }
                                        $arItem['JS_OFFERS'][$keyOffer]['DISPLAY_PROPERTIES'] = $strProps;
                                    }
                                }
                                foreach ($arItem['JS_OFFERS'] as $keyOffer => $arJSOffer) {
                                    if ($arItem['PROPERTIES']['OLD_PRICE']['VALUE'] > 0 && 
                                        $arItem['PROPERTIES']['OLD_PRICE']['ACTIVE'] == 'Y' &&
                                        ($arItem['PROPERTIES']['OLD_PRICE']['VALUE'] * $arItem['OFFERS'][$keyOffer]['CATALOG_MEASURE_RATIO']) > $arItem['JS_OFFERS'][$keyOffer]['PRICE']['VALUE']) {
                                        $arItem['JS_OFFERS'][$keyOffer]['PRICE']['VALUE'] = $arItem['PROPERTIES']['OLD_PRICE']['VALUE'] * $arItem['OFFERS'][$keyOffer]['CATALOG_MEASURE_RATIO'];
                                        $arItem['JS_OFFERS'][$keyOffer]['PRICE']['PRINT_VALUE'] = CCurrencyLang::CurrencyFormat($arItem['JS_OFFERS'][$keyOffer]['PRICE']['VALUE'], $arItem['JS_OFFERS'][$keyOffer]['PRICE']['CURRENCY']);
                                    }
                                    $maxItemPriceValue = ($arItem['JS_OFFERS'][$keyOffer]['PRICE']['VALUE'] > $maxBasisPriceValue) ? $arItem['JS_OFFERS'][$keyOffer]['PRICE']['VALUE'] : $maxBasisPriceValue;
                                    $discount = $maxItemPriceValue - $arItem['JS_OFFERS'][$keyOffer]['PRICE']['DISCOUNT_VALUE'];
                                    $arItem['JS_OFFERS'][$keyOffer]['PRICE']['VALUE'] = $maxItemPriceValue;
                                    $arItem['JS_OFFERS'][$keyOffer]['PRICE']['ECONOMY'] = $discount;
                                    $arItem['JS_OFFERS'][$keyOffer]['BASIS_PRICE']['VALUE'] = $maxItemPriceValue / $arItem['OFFERS'][$keyOffer]['CATALOG_MEASURE_RATIO'];
                                    $arItem['JS_OFFERS'][$keyOffer]['BASIS_PRICE']['ECONOMY'] = $discount / $arItem['OFFERS'][$keyOffer]['CATALOG_MEASURE_RATIO'];
                                    $arItem['JS_OFFERS'][$keyOffer]['BASIS_PRICE']['CATALOG_MEASURE_RATIO'] = $arItem['OFFERS'][$keyOffer]['CATALOG_MEASURE_RATIO'];
                                    if ($isPriceMulty && count($arItem['OFFERS'][$keyOffer]['PRICES']) > 1 && (!$arParams['TAB_TYPE'] || ($arResult['IS_SHOW_LARGE_PREVIEW'] && !in_array('prodday', $itemType) && !in_array('action', $itemType)))) {
                                        $iPrice = 0;
                                        $maxBasisItemPriceValue = $maxBasisPriceValue / $arItem['OFFERS'][$keyOffer]['CATALOG_MEASURE_RATIO'];
                                        foreach($arItem['OFFERS'][$keyOffer]['PRICES'] as $arPrice) {
                                            $maxItemPriceValue = ($arPrice['VALUE'] > $maxBasisItemPriceValue) ? $arPrice['VALUE'] : $maxBasisItemPriceValue;
                                            $arItem['JS_OFFERS'][$keyOffer]['PRICE']['PRICES'][$iPrice]['TITLE'] = $arItem['OFFERS'][$keyOffer]['CATALOG_GROUP_NAME_' . $arPrice['PRICE_ID']];
                                            $arItem['JS_OFFERS'][$keyOffer]['PRICE']['PRICES'][$iPrice]['DISCOUNT_VALUE'] = $arPrice['DISCOUNT_VALUE'];
                                            $arItem['JS_OFFERS'][$keyOffer]['PRICE']['PRICES'][$iPrice]['VALUE'] = $maxItemPriceValue;
                                            $arItem['JS_OFFERS'][$keyOffer]['PRICE']['PRICES'][$iPrice]['ECONOMY'] = $maxItemPriceValue - $arPrice['DISCOUNT_VALUE'];
                                            $arItem['JS_OFFERS'][$keyOffer]['PRICE']['PRICES'][$iPrice]['CURRENCY'] = $arPrice['CURRENCY'];
                                            $arItem['JS_OFFERS'][$keyOffer]['PRICE']['PRICES'][$iPrice]['CATALOG_MEASURE_RATIO'] = $arItem['OFFERS'][$keyOffer]['CATALOG_MEASURE_RATIO'];
                                            $arItem['JS_OFFERS'][$keyOffer]['BASIS_PRICE']['PRICES'][$iPrice]['TITLE'] = $arItem['OFFERS'][$keyOffer]['CATALOG_GROUP_NAME_' . $arPrice['PRICE_ID']];
                                            $arItem['JS_OFFERS'][$keyOffer]['BASIS_PRICE']['PRICES'][$iPrice]['DISCOUNT_VALUE'] = $arPrice['DISCOUNT_VALUE'];
                                            $arItem['JS_OFFERS'][$keyOffer]['BASIS_PRICE']['PRICES'][$iPrice]['VALUE'] = $maxItemPriceValue;
                                            $arItem['JS_OFFERS'][$keyOffer]['BASIS_PRICE']['PRICES'][$iPrice]['ECONOMY'] = $maxItemPriceValue - $arPrice['DISCOUNT_VALUE'];
                                            $arItem['JS_OFFERS'][$keyOffer]['BASIS_PRICE']['PRICES'][$iPrice]['CURRENCY'] = $arPrice['CURRENCY'];
                                            $arItem['JS_OFFERS'][$keyOffer]['BASIS_PRICE']['PRICES'][$iPrice]['CATALOG_MEASURE_RATIO'] = $arItem['OFFERS'][$keyOffer]['CATALOG_MEASURE_RATIO'];
                                            $iPrice++;
                                        }
                                    }
                                }

    js прайс ?

    phpBidlokoder2, 01 Июня 2020

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

    +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
    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
    <?php
        echo count($arr);
        $i = count($arr) - 1;
        for ($i; $i >= 0; $i--) {
        ?>
        <div class="post" id="p<?php echo $arr[$i]->_id; ?>">
          <div class="p_title"><?php echo $arr[$i]->title; ?></div>
          <div class="p_content"><?php echo $arr[$i]->content; ?></div>
          <div class="p_date"><?php echo $arr[$i]->date; ?></div>
          <form id="<?php echo $arr[$i]->_id; ?>" action="index.php" method="get">
            <!--<textarea rows="4" cols="50" name="removid" style="display: none;" ><?php echo $arr[$i]->_id; ?></textarea>-->
              <input type="text" name="removid"  form="<?php echo $arr[$i]->_id; ?>" value="<?php echo $arr[$i]->_id; ?>"/>
            <input type="submit" class="p_remove" onclick="dele('<?php echo $arr[$i]->_id; ?>');" form="<?php echo $arr[$i]->_id; ?>" value="Удалить"/>
          </form><!--</div>-->
          <?php echo $arr[$i]->_id; ?>
        </div>
        <?php
        }
        ?>
    
    <script>
          function dele(param){
            var jsVar = "<?php
            $removid = $_GET['removid'];
            $bulk = new MongoDB\Driver\BulkWrite;
            //$bulk->delete(['_id'=> new MongoDB\BSON\ObjectId($removid)]);
            $query = new MongoDB\Driver\Query(['_id'=> new MongoDB\BSON\ObjectId($removid)]);
            $bulk->delete(['_id'=> new MongoDB\BSON\ObjectId($removid)]);
            $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
            try {
              $result = $manager->executeBulkWrite('forum.posts', $bulk, $writeConcern);
              //header('Location: https://benar.wtf/index.php');
    
            }
            catch (MongoDB\Driver\Exception\BulkWriteException $e) {
              $result = $e->getWriteResult();
            }
    
            ?>";
    
    
          }
    
        </script>

    Сделал вещь

    bodix, 27 Мая 2020

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

    +1

    1. 1
    https://imgur.com/w4Dbg19

    наймите @нормальных программистов

    Fike, 23 Мая 2020

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

    +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
    // Вот код скрипта для отправки емейла:
    
    mb_internal_encoding ("utf-8");
    $from = "Иван Иванов <[email protected]>";
    $to = $name."<$email>";
    $subject = "Подтверждение подписки";
    $message = "текст письма здесь";
    $headers = "From: ".$from."\nReply-To: ".$from."\nContent-Type: text/plain; charset=utf-8\nContent-Transfer-Encoding: 8bit";
    mail ($to, $subject, $message, $headers);
    
    // И что характерно, само тело письма приходит в правильной кодировке. А вот поля отправителя,
    // получателя и сабж письма - в краказябинах. Сами тексты этих полей 100% написаны в utf-8, код скрипта тоже в utf-8.
    // Вот что что я вижу в почте:
    
    // Subject: РРѕРґСРІРµСждение РїРѕРґРїРёСРєРё
    // From: Рван Рванов <[email protected]>
    // Reply-To: Рван Рванов <[email protected]>
    
    // ...
    
    // Проблема решилась следующим образом:
    $subject = "=?utf-8?B?" . base64_encode("Подтверждение подписки") . "?=";
    // И так для каждого поля.

    https://phpclub.ru/talk/threads/Нужна-помощь-битая-кодировка-в-письме.82881/

    gost, 20 Мая 2020

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

    +2

    1. 1
    2. 2
    https://habr.com/ru/post/501798/
    > C++/Qt: пора валить?.

    Выбор небогат – это PHP. Да, я сказал PHP. И мне не стыдно.

    Ещё раз напомню, о каком типе приложений идёт речь: о тех, где сложная логика, требующая вычислительной производительности, реализована на C/C++, а к ним в пару нам нужен как можно более простой открытый язык/экосистема для общения с внешним миром и связи компонентов между собой. А если будет C-подобный синтаксис – вообще хорошо. И тут мы ставим галочки напротив каждого пункта наших требований.

    Главное – PHP прост. При том круге задач, которые он (и экосистема) может решать — он божественно прост. И дело не только в когнитивной нагрузке при кодинге и переключении контекста. Простота ещё и в развёртывании, администрировании и минимальном количестве вариантов, которыми можно решить одну задачу.
    PHP медленно, без резких движений, ползёт в правильную сторону, от увеличения производительности в 3 раза, до строгой типизации, решая задачи простым способом. И обрастая по пути крутыми штуками типа Swoole.
    PHP реализовал офигенский FFI (foreign function interface) к C. Офигенский в том контексте, о котором идёт речь — сочетании простоты и возможностей. Вы только наберите в гугле «PHP: Basic FFI usage».
    В PHP кругом $, а кто по нынешнему курсу их не любит...
    PHP быстрый. Да. Могу по слогам: бы-стрый. Для своей простоты и задач он божественно быстрый.

    j123123, 20 Мая 2020

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

    +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
    17. 17
    18. 18
    19. 19
    public function isSpecial()
    {
        $special_ids = array(
            2222,
            3028,
            3333,
            5555,
            5702,
            6666,
            6700,
            7654,
            7777,
            8451,
            11225
        );
    
        return in_array((int)$this->getId(), $special_ids);
        //return $this->getId() == 2222 || $this->getId() == 3028 || $this->getId() == 3333 || $this->getId() == 5555 || $this->getId() == 5702;
    }

    https://github.com/wiistriker/govnokod_legacy/blob/master/modules/quoter/models/quote.php
    Рекурсивный говнокод.

    gost, 19 Мая 2020

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

    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
    <?php
    
    function get_post_id($comment_list_id) {
        $rawdata = file_get_contents("https://govnokod.ru/comments/$comment_list_id/post");
        $rawdata='<?xml encoding="UTF-8">'.$rawdata;
    
        $old_libxml_error = libxml_use_internal_errors(true);
        $dom = new DOMDocument;
        $dom->loadHTML($rawdata);
        libxml_use_internal_errors($old_libxml_error);
    
        $xpath = new DOMXPath($dom);
        $entries = $xpath->query('//*[@id="content"]/ol[@class="posts hatom"]/li[@class="hentry"]/h2/a');
    
        foreach($entries as $entry) {
            $href = $entry->getAttribute('href');
            if(preg_match('#https://govnokod.ru/(\d+)#', $href, $matches)) {
                $post_id = $matches[1];
                break;
            }
        }
        return $post_id;
    }
    
    $outf = fopen('postids.csv', 'w');
    fputcsv($outf, array('post_id','comment_list_id'));
    for($i = 1; $i <= 26663; $i++) {
        fputcsv($outf, array(get_post_id($i), $i));
    }
    fclose($outf);

    Получение списка всех говнокодов, комментарии к которым можно восстановить.

    ropuJIJIa, 19 Мая 2020

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

    0

    1. 1
    https://t.me/GovnokodBot

    Напомню, или может кто не знал.
    P.S. Кстати, guest8 достаточно раскрученный, поэтому здесь может быть ваша реклама.

    guest8, 18 Мая 2020

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