Автор Тема: 404 при смене языка  (Прочитано 14113 раз)

Оффлайн Drifter-B

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
404 при смене языка
« : Июля 01, 2014, 10:20:23 am »
Всем привет.
Собственно сабж. При попытке смены языка вижу 404-ю страничку. Сам скрипт при этом отрабатывает и если перейти с 404-й на сайт он отображается в нужном языке.
Я, к сожалению, не большой спец в PHP, но что-то не так похоже вот здесь в index.php:
if (isset($_GET["new_language"]) && $_SESSION["current_language"] != $_GET["new_language"]) {
$_SESSION["current_language"] = $_GET["new_language"];
header("Location: ".$_SERVER["HTTP_REFERER"]);
}

Если заменить
header("Location: ".$_SERVER["HTTP_REFERER"]);на
echo '<script>window.location.href = "'.$_SERVER["HTTP_REFERER"].'";</script>';то всё отрабатывет, но во первых выглядит не очень красиво (при переключении на короткое время видно белый экран), а во вторых использование JS - дурной тон :)

Как бы мне это побороть? Подскажите, пожалуйста.
Версия LegoSP - 6.1.2

Оффлайн Drifter-B

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Re: 404 при смене языка
« Ответ #1 : Июля 01, 2014, 11:13:38 am »
Ошибка именно там - в index.php на этом самом header("Location: ".$_SERVER["HTTP_REFERER"]);
Цитировать
[01.07.14 10:24] Error Cannot modify header information - headers already sent by (output started at Z:\home\off-site.com\www\index.php:51) (code: 2) in Z:\home\off-site.com\www\core\core_404.php (line: 8)

Однако, добавление exit; проблему решило. Спасибо за помощь.