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

    +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
    /* Здесь мы имеем сраный унаследованный пиздец: количество товара передается в параметрах POST-запроса,
    	имеющих имена вида productX_count, где X - ИД товара. Как предыдущие разработчики разобирали это счастье?
    	Правильно, перебирали все (блядь, ВСЕ, блядь, 20000 штук!) товары и проверяли, есть ли соответствующее
    	значение в запросе.
    */
    
      $items5 = GetIBlockElementList(5);
      while($arItem = $items5->GetNext())
        if(isset($_POST['product'.$arItem['ID']."_id"]) && is_numeric($_POST['product'.$arItem['ID']."_id"]))
        {
          $_PRODUCTS[$arItem['ID']]['count'] = $_POST['product'.$arItem['ID']."_count"];
        }

    В этом коде меня утешает только боль и ненависть комментария.

    Запостил: clauclauclau, 20 Января 2014

    Комментарии (12) RSS

    • Перебрать ключи запроса, начинающиеся на 'product' и кончающиеся на '_count', а потом отфильтровать кривые айдишки, не?
      Кстати, удивил закос под суперглобальный массив на 11й строке.
      Ответить
      • Закос ли?
        Ответить
        • Закос. Подчеркивание и капс суперглобальности не дадут ;)
          Ответить
      • указать в html <input type="text" name="product[{$id}]" value="{$count ? : ''}" /> и работать только с $_REQUEST['product'], перебирая только пришедшие позиции, не? )))

        закос под суперглобальность приколен, но приведенный код может являться частью функции... конечно приставка "супер" в этом случае отпадает, но вот "глобальность" может и появиться. )))
        Ответить
        • и не факт совсем $_PRODUCTS можно легко таскать по всему коду сериализуя и разсериалируя в сессию
          Ответить
          • +1. об этом у меня, глядя на приведенный код, даже мысли не возникло. )))
            Ответить
          • > $_PRODUCTS можно легко таскать по всему коду сериализуя и разсериалируя в сессию
            а скорей всего в $_POST
            Ответить
        • Ну это если совсем по-хорошему.
          Я-то предлагал в рамках "меньшего говна и малых правок".
          Ответить
          • ну, то что я предложил можно тоже считать ГК. )) ни кто не запрещает конечному идиоту пользователю забить эти инпуты всякой вкусной херней. можно глянуть в сторону html5 и объявить <input type="number" ....>, но и в этом случае от клинических идиотов пользователей ни кто не застрахован.

            а разгребать увы... ))) (((
            Ответить
            • Ммм, type="number" тут незачем, юзверь же не будет вручную вводить айдишники товаров. А фильтровать вводимые данные всё равно потребуется.

              А так - вполне себе подход, получше моего.
              Ответить
    • Лютый пиздец.
      Ответить
    • Узнаю быдлокодинг школоты под Битрикс...
      Ответить

    Добавить комментарий