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

    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
    public function passes($attribute, $hostname)
        {
            if (!mb_stripos($hostname, '.')) {
                return false;
            }
    
            $domain = explode('.', $hostname);
            $allowedChars = ['-'];
            $extenion = array_pop($domain);
    
            foreach ($domain as $value) {
                $fc = mb_substr($value, 0, 1);
                $lc = mb_substr($value, -1);
    
                if (
                    hash_equals($value, '')
                    || in_array($fc, $allowedChars)
                    || in_array($lc, $allowedChars)
                ) {
                    return false;
                }
    
                if (!ctype_alnum(str_replace($allowedChars, '', $value))) {
                    return false;
                }
            }
    
            if (
                !ctype_alnum(str_replace($allowedChars, '', $extenion))
                || hash_equals($extenion, '')
            ) {
                return false;
            }
    
            if (filter_var($hostname, FILTER_VALIDATE_DOMAIN) === false) {
                return false;
            }
    
            return true;
        }

    валидация домена...

    websbkinfo, 09 Февраля 2019

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

    +1

    1. 1
    “Если в скрипт не переданы аргументы, то мы создадим директорию для persistent-данных по дефолтному пути. Например /tmp/persistent”

    gueest8, 08 Февраля 2019

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    https://www.quora.com/As-a-software-engineer-in-your-opinion-what-are-the-biggest-bottlenecks-and-or-inefficiencies-in-programming-today
    
    
    The key to overcoming this bottleneck, I believe, is live coding, whereby you can inspect and modify code and data while the program is running. Detect a bug? No problem. Immediately inspect the code and data to determine the cause. Make the appropriate changes. Continue execution. No need to save the code, compile the code and rerun the program from the beginning.

    оказывается то, что делали пхпшники начала нулевых, правя по FTP в Notepad++ файлы на живом сервере это т.н. "Live coding", и за этим будущее

    gueest8, 06 Февраля 2019

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

    −3

    1. 1
    $i = 1 + ($data->page - 1) * 200;

    Инициализация переменной в одном из шаблонов рендеринга страницы.

    icamys, 03 Февраля 2019

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

    0

    1. 1
    2. 2
    Обнаружен критический баг в "PHP":
    https://habr.com/ru/post/416573/

    Полный список лулзов:
    https://habr.com/ru/post/438582/

    guestinxo, 03 Февраля 2019

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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <?$props = "";
    if(!empty($arResult["PROPERTIES"]["ARTNUMBER"]["VALUE"])):
    	$props[] = array(
    		"NAME" => $arResult["PROPERTIES"]["ARTNUMBER"]["NAME"],
    		"CODE" => $arResult["PROPERTIES"]["ARTNUMBER"]["CODE"],
    		"VALUE" => $arResult["PROPERTIES"]["ARTNUMBER"]["VALUE"]
    	);
    	$props = strtr(base64_encode(addslashes(gzcompress(serialize($props),9))), '+/=', '-_,');?>
    	<input type="hidden" name="PROPS" value="<?=$props?>" />
    <?endif;?>

    tee, 29 Января 2019

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

    +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
    <div id="bp-task-tabs-header" class="bp-tabs-block">
        <span id="bp-task-tab-1" class="bp-tab" onclick="return function(){
        var t1 = BX('bp-task-tab-1'),
            t2 = BX('bp-task-tab-2'),
            t1c = BX('bp-task-tab-1-content'),
            t2c = BX('bp-task-tab-2-content');
    
            BX.addClass(t1, 'bp-tab-active'); BX.removeClass(t2, 'bp-tab-active');
            BX.addClass(t1c, 'active'); BX.removeClass(t2c, 'active');
            return false;
        }()"><?=GetMessage("BPATL_COMMENTS")?></span>
        <span id="bp-task-tab-2" class="bp-tab bp-tab-active" onclick="return function(){
        var t1 = BX('bp-task-tab-2'),
            t2 = BX('bp-task-tab-1'),
            t1c = BX('bp-task-tab-2-content'),
            t2c = BX('bp-task-tab-1-content');
    
            BX.addClass(t1, 'bp-tab-active'); BX.removeClass(t2, 'bp-tab-active');
            BX.addClass(t1c, 'active'); BX.removeClass(t2c, 'active');
            return false;
        }()"><?=GetMessage("BPATL_DOC_HISTORY")?></span>
    
        <?if($hasFirstIdProcess):?>
            <span id="bp-task-tab-2" class="bp-tab bp-tab-active" onclick="return function(){
            var t1 = BX('bp-task-tab-3'),
                t2 = BX('bp-task-tab-2'),
                t3 = BX('bp-task-tab-1');
    
            var t1c = BX('bp-task-tab-3-content'),
                t2c = BX('bp-task-tab-2-content'),
                t3c = BX('bp-task-tab-1-content');
    
                BX.addClass(t1, 'bp-tab-active'); 
                BX.removeClass(t2, 'bp-tab-active');
                BX.removeClass(t3, 'bp-tab-active');
    
                BX.addClass(t1c, 'active'); 
                BX.removeClass(t2c, 'active');
                BX.removeClass(t3c, 'active');
    
                return false;
            }()"><?=GetMessage("BPATL_FIRST_DOC_HISTORY")?></span>
        <?endif?>
    </div>

    Добавление новой вкладки для бизнес процесса задачи в битриксе

    https://imgur.com/a/151ZUXl

    djigurda, 28 Января 2019

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

    +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
    <div class="tablicmagazov">
        <h2>Розничные магазины</h2>
    
        <div class="tablica_magazinov">
            <div class="stroka_zagolovok_magazin">
                <div class="kolonka_magazin"></div>
                <div class="kolonka_magazin"></div>
                <div class="kolonka_magazin zagolovok_ico">Груминг</div>
                <div class="kolonka_magazin zagolovok_ico">Ветеринар</div>
                <div class="kolonka_magazin zagolovok_ico">Самовывоз</div>
            </div>
    	    <?foreach($arResult["ITEMS"] as $arItem):?>
                <div class="stroka_magazina">
                    <div class="kolonka_magazin">
                        <a href="<?echo $arItem['DETAIL_PAGE_URL']?>"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[0])[0];?></a>
                        <div class="voprosik_magazini">
                            ?
                            <div class="soderzimoe_voprosa">
                                <?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[3])[4];?>
                                <?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[4])[4];?>
                                <?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[5])[4];?>
                                <div class="strelka_dop_uslugi_vspliv"></div>
                            </div>
                        </div>
                    </div>
                    <div class="kolonka_magazin magaz_metro">
                        <div class="znachek_metro"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[2])[2];?></div>
                        <?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[1])[0];?>
                    </div>
                    <div class="kolonka_magazin ico_magaz"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[3])[1];?></div>
                    <div class="kolonka_magazin ico_magaz"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[4])[1];?></div>
                    <div class="kolonka_magazin ico_magaz"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[5])[1];?></div>
                </div>
    	    <?endforeach;?>
        </div>
    </div>

    #bitrix

    cheburator, 24 Января 2019

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

    0

    1. 1
    2. 2
    3. 3
    $loc = "^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$";
    $extensions = explode("|",explode(")",explode("(",$loc)[1])[0]);
    $extensions = preg_match("/\((.*)\)/",$loc);

    What's better?

    TAW, 22 Января 2019

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

    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
    public static function copyImage($params)
    {
    ...
            if (!UploadImage::getOrder($barcode, $num)) {
                $num++;
                return self::copyImage($filename, $code, $ext, $sync, $user_id, $num); //тут ебаная рекурсия
            }
    ...
        public static function getOrder($barcode, $num = 0)
        {
            if (Images::findOne(['order' => $num, 'barcode' => $barcode])){
                return false;
            }
            return true;
        }
    
    вся эта рекурсия вместо простого...
    
        public static function getOrder($barcode, $num = 0)
        {
            if (Images::findOne(['order' => $num, 'barcode' => $barcode])){
                self::getOrder($barcode, $num + 1);
            }
            return $num;
        }

    просто убейте меня...

    dasauser, 21 Января 2019

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