Перейти к содержанию
Авторизация  
astarot12

Нужна помощь в исправлении php скрипта

Рекомендуемые сообщения

Здравствуйте! Ищу человека, который смог бы подправить небольшой php скрипт ghtweb 5. Проблема в магазине на сайте. Когда выбираю предмет и жму "Купить", мне пишет "Выберите предметы", как будто я их не выбрал. Некоторые файлы личного кабинета взяты из версии ghtweb 5.0.15, а контроллеры покупки из версии 5.0.16, из-за этого данный трабл. Сама версия 5.0.15 была мной утеряна, так что взять контроллеры из нее я не могу. Жду ответов!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, astarot12 сказал:

Здравствуйте! Ищу человека, который смог бы подправить небольшой php скрипт ghtweb 5. Проблема в магазине на сайте. Когда выбираю предмет и жму "Купить", мне пишет "Выберите предметы", как будто я их не выбрал. Некоторые файлы личного кабинета взяты из версии ghtweb 5.0.15, а контроллеры покупки из версии 5.0.16, из-за этого данный трабл. Сама версия 5.0.15 была мной утеряна, так что взять контроллеры из нее я не могу. Жду ответов!

 

76c879a77cf0559b8768a4ad698dc343--mona-lisa-homunculus.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, astarot12 сказал:

А по теме отписаться?)

Смотри какие он поля проверяет, когда выводит это сообщение и правь.
А вообще люди сам скрипт ждали, когда ты скинешь. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, astarot12 сказал:

Здравствуйте! Ищу человека, который смог бы подправить небольшой php скрипт ghtweb 5. Проблема в магазине на сайте. Когда выбираю предмет и жму "Купить", мне пишет "Выберите предметы", как будто я их не выбрал. Некоторые файлы личного кабинета взяты из версии ghtweb 5.0.15, а контроллеры покупки из версии 5.0.16, из-за этого данный трабл. Сама версия 5.0.15 была мной утеряна, так что взять контроллеры из нее я не могу. Жду ответов!

Скрипт в студию

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, astarot12 сказал:

Не в этом файле нужно искать ошибку.  Тут всё правильно.

Нужно найти что вызывает функцию actionBuy($category_link) и какие данные передает и откуда их берет. Скорее всего это JS - Ajax.

// Предметы не выбраны
        if(!isset($_POST['items']) || !is_array($_POST['items']) || count($_POST['items']) < 1)
        {
            user()->setFlash(FlashConst::MESSAGE_ERROR, Yii::t('main', 'Выберите предметы.'));
            $this->redirectBack();
        }

До данного кода не дошли выбранные итемы, поэтому и кидает ошибку.

Изменено пользователем Aslan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, astarot12 сказал:

Возможно этот файлик

category.php

Не. В поиск по содержимому во всех файлах CMS введи actionBuy и скрин результата. Скорее всего оно будет в .js файле, но может быть и .php

Изменено пользователем Aslan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Aslan сказал:

Не. В поиск по содержимому во всех файлах CMS введи actionBuy и скрин результата. Скорее всего оно будет в .js файле, но может быть и .php

Странно, но не нашло ничего...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Объясню немного поподробнее: имеется два файла "category.php", оба с разных версий ЦМС (5.0.15 и 5.0.16). Вставляю на сайт файл из версии 5.0.16:

air6arn21fkrki2om6k13ndc6.jpg

Как мы видим, все работает. НО присутствует поле ввода количества покупаемого товара. Это для меня не желательно.

Вставляем с заменой другой файл category.php, из версии 5.0.15, обновляем, смотрим...c69oyj0k1w32tfyrt2amkl2zh.jpg

Как видим, поле ввода кол-ва товара исчезло и количество составляет столько, сколько я выставил в админке. НО после покупки появляется это самое сообщение "Выберите предметы".

Как я понимаю, решение надо искать именно в этом файле (category.php), но возможно я не прав.

Кто может, прошу помочь в решении)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему нельзя убрать поле инпут в оригинальном файле? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вот куски кода из разных файлов 

№1

<td><input type="count" name="items[<?php echo $ii ?>][count]" value="<?php echo $item->count ?>" class="form-control"></td>

№2

<td><?php echo number_format($item->count, 0, '', '.') ?></td>

Пробовал разные свистопляски с кодом, но все мои танцы с бубном не дали результата.

Прошу помочь кто может)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 часов назад, astarot12 сказал:

Странно, но не нашло ничего...

ок, тут запилили раковым способом... так просто поиском не найти.

Изменено пользователем Aslan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
foreach ($_POST['items'] as $item) {

//if(!isset($item['id']) || !isset($item['count']))
    if (!isset($item['id'])) {
        continue;
    }

//$items[(int) $item['id']] = (int) $item['count'];
    $items[(int) $item['id']] = 1;
}


В 16 версии замени:

<td><input type="text" name="items[<?php echo $ii ?>][count]" value="<?php echo $item->count ?>" class="form-control"></td>

на

<td><?php echo number_format($item->count, 0, '', '.') ?></td>

 

Изменено пользователем Aslan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
27 минут назад, Aslan сказал:

В 16 версии замени:
 


<td><input type="text" name="items[<?php echo $ii ?>][count]" value="<?php echo $item->count ?>" class="form-control"></td>

на


<td><?php echo number_format($item->count, 0, '', '.') ?></td>

 

Пробовал заменять, не катит.

Проблема решилась банальным добавлением куска кода, и заменой input type="text" на input type="hidden". Получилось не так красиво, но зато работает.

Всем спасибо за советы и подсказки)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, astarot12 сказал:

Пробовал заменять, не катит.

Проблема решилась банальным добавлением куска кода, и заменой input type="text" на input type="hidden". Получилось не так красиво, но зато работает.

Всем спасибо за советы и подсказки)

Ты не пробовал в ShopController.php заменить:

foreach ($_POST['items'] as $item) {
    if (!isset($item['id']) || !isset($item['count'])) {
        continue;
    }

    $items[(int) $item['id']] = (int) $item['count'];
}

на

foreach ($_POST['items'] as $item) {

//if(!isset($item['id']) || !isset($item['count']))
    if (!isset($item['id'])) {
        continue;
    }

//$items[(int) $item['id']] = (int) $item['count'];
    $items[(int) $item['id']] = 1;
}

Поэтому и не работало) 

input type="hidden" я могу в любой момент вернуть и менять себе кол-во. В данном случае конечно не критично, но если всё в cms будешь таким способом исправлять, то дыры тебе обеспечены, нужно все таки понимать как работает и зачем.

Изменено пользователем Aslan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...