Есть модуль оплаты картой сбербанка, разрабатывали его программисты из сбербанка, там есть такой код:
<!-- тут уже идёт кусок станицы -->
<div class="sale-paysystem-wrapper">
<? if (in_array($response['errorCode'], array(999, 1, 2, 3, 4, 5, 7, 8))) { //всякие проверки и вывод ошибок
$error = GetMessage('RBS_PAYMENT_PAY_ERROR_NUMBER') . ' ' . $response['errorCode'] . ': ' . $response['errorMessage'];
?><span><?= $error ?></span><?
} elseif ($response['errorCode'] == 0) {
$_SESSION['ORDER_NUMBER'] = $order_number;
/* комменты*/
if ($request->get('ORDER_ID') && $request->get('PAYMENT_ID')){
echo '<script>window.location="' . $response['formUrl'] . '"</script>';
} else { //Этот header работать не должен
header("Location:" . $response['formUrl']);
}
В общем суть простая, этот модуль подключается на странице и пробрасывает пользователя на страницу оплаты картой, т.к. сюда $response['formUrl'] . Но! Этот header() по идеи работать не должен, но он работает на локальном сервере и на тестовом сервере проекта, а на бою не срабатывает. Вопрос, header() вообще срабатывает, какая-то мистическая настройка на локальном и тестовом сервере (P.S. специально ничего не настраивали, просто поставили модуль и следуя инструкциям разработчиков расскомментировали это if с header() )?