Перейти к содержанию

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

Добрый день друзья, помогите узнать в чем может быть дело.

 

Работало.. работало добавление баллов с заказа и в один прекрасный момент перестало работать.

 

Конкретно, в информации о заказе (admin/index.php?route=sale/order/info), при нажатии на Добавить баллы (удалить баллы), не происходит ничего.

При открытии страницы через просмотр кода элемента(скрины прикрепил),  видна ошибка 404 Not Found POST запроса на admin/index.php?route=sale/order/addreward

 

А теперь загадка:

1. Перезалил файл шаблона/order_list.tpl

2. Перезалил контроллер/sale/order.php

3. Перезалил model/sale/order.php

4. Удалил файлы system/cach

5. Удалил файлы vqmod/vqcach/

 

И чуда не произошло.

 

Важно: 

В день начала проблем (и день до этого), никаких изменений на хостинге не производилось.

На локалхосте все работает. Паралельно на тестовом сервере все работает исправно и никаких проблем нет.

Подскажите, отгадать загадку?)

Версия 1.5.5.1.2

 

 

2017-04-09_20-12-29.png

2017-04-09_20-13-44.png

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

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


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

Паралельно на тестовом сервере все работает исправно и никаких проблем нет.

Этот сервер отдельно от основного или речь идёт о двух установках ОК рядом на одном сервере?

 

Посмотрите тело ответа, чтоб понять, 404 приходит от сервера или от ОК.

Ну, и проверьте на всякий случай, что метод addReward в /admin/controller/sale/order.php никуда не делся.

  • +1 1

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


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

Этот сервер отдельно от основного или речь идёт о двух установках ОК рядом на одном сервере?

 

Посмотрите тело ответа, чтоб понять, 404 приходит от сервера или от ОК.

Ну, и проверьте на всякий случай, что метод addReward в /admin/controller/sale/order.php никуда не делся.

 

Да, сервер отдельно от основного находится.

 

Ответ приходит:

<!DOCTYPE html>
<html dir="ltr" lang="ru">
<head>
<meta charset="UTF-8" />

<meta name="format-detection" content = "telephone=no" />
<meta name="HandheldFriendly" content="True" />

<title>Запрашиваемая страница не найдена!</title>..........

 

Код присутствует:

	public function addReward() {
		$this->language->load('sale/order');
		
		$json = array();
    	
     	if (!$this->user->hasPermission('modify', 'sale/order')) {
      		$json['error'] = $this->language->get('error_permission'); 
    	} elseif (isset($this->request->get['order_id'])) {
			$this->load->model('sale/order');
						
			$order_info = $this->model_sale_order->getOrder($this->request->get['order_id']);
			
			if ($order_info && $order_info['customer_id']) {
				$this->load->model('sale/customer');

				$reward_total = $this->model_sale_customer->getTotalCustomerRewardsByOrderId($this->request->get['order_id']);
				
				if (!$reward_total) {
					$this->model_sale_customer->addReward($order_info['customer_id'], $this->language->get('text_order_id') . ' #' . $this->request->get['order_id'], $order_info['reward'], $this->request->get['order_id']);
					
					$json['success'] = $this->language->get('text_reward_added');
				} else {
					$json['error'] = $this->language->get('error_action'); 
				}
			} else {
				$json['error'] = $this->language->get('error_action');
			}
		}
		
		$this->response->setOutput(json_encode($json));
  	}

 

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


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

а в

vq2-admin_controller_sale_order.php

есть 

public function addReward() ?

  • +1 1

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


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

Ответ приходит:

Ну, это ответ ОК, значит проблема таки в нём, а не в сервере.

 

17 минут назад, mesateri сказал:

Код присутствует:

Это оригинальный файл или из кеша vQmod?

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


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

а в

vq2-admin_controller_sale_order.php

есть 

public function addReward() ?

Ух.. вот тут я обрадовался, так как этот пункт я не перепроверил. И подумал.. вот оно скорее всего решение проблемы, но не тут-то было)

В vq2-admin_controller_sale_order.php есть addReward... Сейчас сравню построчно, отличаются ли они, но думаю они будут идентичны.

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


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

Ну, это ответ ОК, значит проблема таки в нём, а не в сервере.

 

Это оригинальный файл или из кеша vQmod?

оригинальный, из кеша сравнил, они аналогичны. Пример из кеша:

 

Скрытый текст

    public function addReward() {
        $this->language->load('sale/order');
        
        $json = array();
        
         if (!$this->user->hasPermission('modify', 'sale/order')) {
              $json['error'] = $this->language->get('error_permission'); 
        } elseif (isset($this->request->get['order_id'])) {
            $this->load->model('sale/order');
                        
            $order_info = $this->model_sale_order->getOrder($this->request->get['order_id']);
            
            if ($order_info && $order_info['customer_id']) {
                $this->load->model('sale/customer');

                $reward_total = $this->model_sale_customer->getTotalCustomerRewardsByOrderId($this->request->get['order_id']);
                
                if (!$reward_total) {
                    $this->model_sale_customer->addReward($order_info['customer_id'], $this->language->get('text_order_id') . ' #' . $this->request->get['order_id'], $order_info['reward'], $this->request->get['order_id']);
                    
                    $json['success'] = $this->language->get('text_reward_added');
                } else {
                    $json['error'] = $this->language->get('error_action'); 
                }
            } else {
                $json['error'] = $this->language->get('error_action');
            }
        }
        
        $this->response->setOutput(json_encode($json));
      }

 

АПД. Перезалил оригинальные файлы контроллера и файл шаблона. Ошибка осталась..

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

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


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

addReward

Печалько!!!!!!

 

а куда обращается?

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


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

Печалько!!!!!!

 

а куда обращается?

 

Код  с шаблона

 

function addreward(oid) {
    $.ajax({
        url: 'index.php?route=sale/order/addreward&token=<?php echo $token; ?>&order_id='+oid,
        type: 'post',

 

Обращение идет как и положено к папке админ

Request URL:
https://сайт/admin/index.php?route=sale/order/addreward&token=e8e3ded9715574cf0d44ddb8c0b26b9b&order_id=номер
 
Или не это имеется ввиду?

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


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

addreward

Вторая печалька

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


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

Вторая печалька

 

Ребус с пичальками так и не отгадал :lol:

 

Что не так ? addreward с большой написать (addReward) надо в шаблоне? (function addReward(oid) {)  пробовал, не помогло или путь запроса url: https://сайт/admin/index.php?route=sale/order/addReward ?(не понял особого смысла, но тоже не помогло)

 

Можно подсказку в виде еще одной печальки? :unsure:

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


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

ndex.php?route=sale/order/addreward

ndex.php?route=sale/order/addReward

 

не ищите проблему, там где ее нет

 

Обновите модификаторы
 

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


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

Вторая печалька

Не перегревайся, ещё рано :) В пыхе названия методов регистронезависимы.

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


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

Та ладно :(

Упс...  (во поперло!) :(

 

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


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

Ответ пришел пришел оттуда, откуда совсем не ждали.

 

Хостер (втихаря) включил mod_security для аккаунта. После этого перестали работать бонусные баллы. 

Также (по моему мнению, не факт) при попытках начислить баллы (а кнопка нажималась достаточно часто), мой IP сервером был заблокирован (Ответ хостераВ логах, комментарий к записи о блокировке, как о множественных попытках авторизации с неверными данными.  )

 

Когда mod_security  для аккаунта (сервера) отключили, бонусные баллы стали начисляться как и положено.

 

Всем огромная благодарность за помощь. Натолкнули на идеи и не оставили в беде).

 

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

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


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

Гы..

Не...
Я думаю из-за ленивости хостера настроить правильно фильтры мода

например 1=1 - для него это fail

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


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

В принципе, ответ был дан чуть ранее, когда был показан ответ сервера

 

Где в html шапке не было ничего опенкартовского

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


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

Где в html шапке не было ничего опенкартовского

Мне как раз наоборот показалось, что это именно ответ ОК. Хотя этого куска и было мало, чтоб что-то понять, но эти мета-теги и русский тайтл.

Я рассчитывал, что если там ошибка сервера, то будет что-то стандартное от nginx или Apache.

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.