Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Вот такой запрос летит на сервер по AJAX
- /*
- sid: 326769
- u: 145594a9
- m: 9e21f2b27899
- l: 79521664_79521663_79521661-79521664-1
- i: 3388237b5d73871488a3209708b3d73872088a3832353b1d83799649a3260070b1d73872194e73872266a3828642b1d80995281
- n: 32062589_28252764_28252235_28252679_28252733_33818743_28277629_28252819_75828055_28252781
- Здесь последняя строка - id-шники товаров в корзине
- i похоже на какой-то ключ, но я не уверен
- sid, u, m всегда одинаковые, но от этоно не становится понятнее что это
- */
- # По этому полю можно с таким комментарием в коде производить поиск или нельзя? Непонятно
- // Поля, по которым можно производить поиск
- $sql_search_fields = array(
- 'delivery_id' => -1,
- ),
- // Загружаме данные по товарной категории
- $c = $goods->cat->get($R['id'], array('full' => 1));
- if($c==false or $c['site_id']!=$sites->work_site_id) {
- $T->show('goods_cat_no_data');
- } else {
- // Загружаем меню для отображения списка вложенности
- $goods->cat->GetTreeMenuGet(array(
- 'goods_cat_id' => intval($c['goods_cat_id']),
- 'show_warehouse' => intval($c['goods_cat_is_warehouse']),
- 'show_hidden' => 1,
- 'show_only_nested' => 0,
- 'without_current_branch' => 1,
- 'site_id' => $sites->work_site_id,
- ));
- $opt = array(
- 'tpl_main_block_list' => 'form_goods_img',
- 'tpl_attr_block_list' => 'form_goods_attr',
- 'tpl_sub_attr_block_list' => 'attr',
- 'tpl_prop_block_list' => 'form_goods_prop',
- 'tpl_sub_prop_block_list' => 'prop',
- );
- if(is_array($c['goods_image_id'][0])) {
- $v = &$c['goods_image_id'][0];
- $img = $goods->image->get($v['goods_image_id']);
- $T->block($opt['tpl_main_block_list'],array(
- 'ID' => intval($v['goods_image_condition_goods_cat_id']),
- 'NAME' => h(mb_strlen($img['goods_image_name'])>0?$img['goods_image_name']:$c['goods_cat_name']),
- 'MAIN' => intval($v['goods_image_condition_goods_cat_main']),
- 'ICON' => h($img['goods_image_file_name-a-icon']),
- 'PREVIEW' => h($img['goods_image_file_name-a-preview']),
- ));
- unset($img);
- }
- unset($k,$v);
- /*
- Здесь комментарий стоит перед $goods->cat->GetTreeMenuGet потом пустая строка и потом $opt = array вот непонятно, комментарий относится к ним особоим или только к верхнему?
- Что происходит в нижнем if сразу не разобраться, комментария нет, к тому же нет пробела и выглядит как будто они по смыслу объединены с $opt = array
- Ещё обрати внимание на строку с 'NAME'=> она вообще достойна отдельной премии т.к. непонятно что за h и вообще там внутри тернарный if
- */
- ## Код 2
- // Если отправили форму
- if( isset($R['hash']) ){
- // Проверяем хэш
- if(!$secure->check_hash($R['hash'])) {
- $GLOBALS['UserSess3']->setFlash('error_notice', $GLOBALS['lang']->translate("Данные категории не сохранены.") . " " . h($secure->last_error));
- } else {
- //print_r2($F);
- // Повторная отправка формы, в случае работы в многопользовательском режиме
- $T->createFormFromArray('RESEND_FORM', $F);
- // Если недостаточно прав доступа для редактирования данных
- if(!$user->accessCheckByShopPrivileges('goods', 'edit', 0)) {
- $GLOBALS['UserSess3']->setFlash('error_notice', $user->last_error);
- } elseif(!$goods->cat->actions->update($R['id'], array_merge($F, array(
- 'check_version' => isset($F['dont_check_version']) && intval($F['dont_check_version']) ? 0: 1, // Проверять разницу версий (Многопользовательский режим)
- )))) {
- $GLOBALS['UserSess3']->setFlash('error_notice', $goods->cat->actions->last_error);
- } else {
- $GLOBALS['UserSess3']->setFlash('good_notice', $GLOBALS['lang']->translate('Данные категории успешно сохранены'));
- redirect_to(getCurrentPageURL());
- }
- }
- }
- /*
- Тут сразу несколько грубых ошибок:
- 1) Опять обнобуквенные переменные
- 2) Глобальные переменные во всей красе
- 3) Каково основное действие этого блока? Это update - обновление данных, он запрятан в середину
- 4) Тернатный if внутри условия elseif
- 5) После обновления сразу идёт error_notice т.е. ошибка и только внизу если всё ок т.е. немного логика нарушается, результата не видно, проще было бы к true приравнять
- 6) Просто прекрасны скобочки )))) - где они не на уровне открытия разнесены, благодаря этому вообще не понять какая что открывает, закрывает
- */
- ## Код 3
- // Тут ошибка только одна по сути, оцени решение сделать unset($i) после цикла!
- for($i = 1; $i <= 10; $i++) {
- if(!defined('PROJECT_DESIGN_FILES_IP_' . $i)) {
- break;
- } elseif(constant('PROJECT_DESIGN_FILES_IP_' . $i) == $design_ip) {
- $is_found = 1;
- }
- }
- unset($i);
- ## Код 4 Шикарный if
- // Проверка прав доступа
- if(
- $user->access_check('admin')
- || $d_data[0]['design_available'] && (
- 0 == $d_data[0]['site_id']
- || $sites->work_site_id == $d_data[0]['site_id']
- || $sites->group->design_cond->check_access_by_sites_group_id_and_design_id($s_d['site_group_id'], $d_data[0]['design_id'])
- )
- ) {
- $design_id = $d_data[0]['design_id'];
- } else {
- $design_id = 1;
- }
- ## Код 5 код что бы задать одну настройку $CONF['invite'] здесь сразу 2 тернарных if'a
- // 1 - выключить открытый доступ к сайту, 0 - включить
- $CONF['invite'] = IS_CRON
- ? 0
- : ((
- false !== strpos($_REQUEST['mod_lname'], '/page1/')
- || false !== strpos($_REQUEST['mod_lname'], '/page2/')
- || false !== strpos($_REQUEST['mod_lname'], '/page3/')
- || false !== strpos($_REQUEST['mod_lname'], '/api/url1')
- || false !== strpos($_REQUEST['mod_lname'], '/api/url12')
- )
- ? 0
- : 1
- );
- ## Код 6. Запись свойств товара в БД.
- // Здесь проблема в том, что мы не проверяем длиннее свойство текстовое 255 символов или нет, мы просто обрезаем его до 255 символов
- // и записываем в БД. Т.е. если упользователя свойство было длиннее то он не узнает о проблеме
- // У него просто в базу запишется обрезаная строка
- if(!$this->parent->val->update($goods_property_value_id, array(
- 'goods_property_value' => mb_substr(trim(str_replace("\n", '', h($goods_property_value))), 0, 255),
- )))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement