[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает перенаправление
Okulo
всем здрасте.

подскажите, почему может не срабатывать код
header('Location: index.php');

в то время как заменив его на
echo "<meta http-equiv='refresh'; content='0; url=index.php'>"; 
все работает



Спустя 46 секунд (27.03.2012 - 13:29) Winston написал(а):
Что значит не срабатывает? Ошибку выдает?

Спустя 4 минуты, 15 секунд (27.03.2012 - 13:33) Okulo написал(а):
мм.. нет, ошибки нет. просто не происходит перенаправление

Спустя 5 минут, 31 секунда (27.03.2012 - 13:39) Winston написал(а):
До header() на экран ничего не выводится?
Вверху файла напиши error_reporting(E_ALL); ini_set('display_error', 1);



Спустя 42 секунды Winston написал(а):
Также нужно останавливать скрипт после редиректа
header('Location: index.php');
exit;

Спустя 1 минута, 56 секунд (27.03.2012 - 13:41) Okulo написал(а):
а сори

оказывается есть ошибки:

Warning: Cannot modify header information - headers already sent by

Спустя 1 минута, 49 секунд (27.03.2012 - 13:42) Winston написал(а):
Значит у тебя до перенаправления есть вывод на экран или же кодировка UTF-8 With BOM

Спустя 6 минут, 44 секунды (27.03.2012 - 13:49) Okulo написал(а):
да. вывод на экран есть.
а разве не может быть так примерно?

<?php
if ($a > $b) {
echo "a больше, чем b"; // вывод тут
} else {
header('Location: index.php');
exit;
}
?>

Спустя 3 минуты, 44 секунды (27.03.2012 - 13:53) Winston написал(а):
header нельзя использовать если на экране уже что то выведено, если ничего не выведено и появляется ошибка, значит у тебя кодировка UTF-8 с BOM
Тогда открой любой редактор и поставь кодировку UTF-8 БЕЗ BOM

Спустя 13 минут, 47 секунд (27.03.2012 - 14:07) Okulo написал(а):
я так понимаю, мне в данном случае нужно использовать

echo "<meta http-equiv='refresh'; content='0; url=index.php'>";

но проблема в том, что когда меня туда перенапрявляет, страница там не обновленная почему то. То есть нужно ее в ручную обновлять.

может есть способ тогда обновить страницу при переходе на нее?

Спустя 51 секунда (27.03.2012 - 14:07) killer8080 написал(а):
Цитата (Okulo @ 27.03.2012 - 12:49)
да. вывод на экран есть.
а разве не может быть так примерно?

<?php
if ($a > $b) {
    echo "a больше, чем b"; // вывод тут
} else {
    header('Location: index.php');
  exit;
}
?>

В твоем примере вывода до header нет. Либо как уже сказали проблема с UTF BOM, либо есть пробельные символа до <?php. Или ты чего то не договариваешь.

Спустя 1 минута, 28 секунд (27.03.2012 - 14:09) Winston написал(а):
echo "<meta http-equiv='redirect'; content='0; url=index.php'>"; 

А на странице которую обновить нужно
echo "<meta http-equiv='refresh'; content='1; url=index.php'>"; 

И вообще нужно переделывать все, чтобы логика была сверху, а отображение снизу

Спустя 2 минуты, 54 секунды (27.03.2012 - 14:12) killer8080 написал(а):
Winston
вообще достаточно было
echo "<meta http-equiv='refresh'; content='0; url=index.php'>"; 

хотя это не корректно выдавать браузеру огрызки html-я вместо валидного кода

Спустя 4 минуты, 28 секунд (27.03.2012 - 14:16) Winston написал(а):
killer8080
Ну он сказал, что не подходит такой способ, я ему другой предложил.

Спустя 2 минуты, 44 секунды (27.03.2012 - 14:19) killer8080 написал(а):
Winston
там по ходу страница из кеша поднимается. smile.gif
Вообще задачу нужно решать теми средствами которые для неё предназначены. Не вижу смысла использовать теги, эмулирующие действие заголовков, когда можно непосредственно отправлять заголовки.

Спустя 3 минуты, 34 секунды (27.03.2012 - 14:23) Okulo написал(а):
Winston спасибо.
пока сделаю так.
потом подумаю как переделать код smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.